2017-04-22 80 views
0

所以我有蟒蛇以下嵌套列表:蟒蛇嵌套的列表不是分裂

a=[['1475367347', '72', 'c82e4f74ab2856bf', '14e87da06de28007', '1faf45a4', '83f8e8c8', '6', 'c7bd96e2', 'c7bd96e2', 'a799a5bf', '4b664dcf', '5d955804', '3d2831f2', '1', '1'],['1475367347', '72', 'c82e4f74ab2856bf', '14e87da06de28007', '1faf45a4', '83f8e8c8', '6', 'c7bd96e2', 'c7bd96e2', 'a799a5bf', '4b664dcf', '5d955804', '3d2831f2', '1', '1']] 

下面是我在做什麼:

for b in a: 
    for item in b: 
     print(item) 

但上面打印語句的結果如下: :

[ 
[ 
' 
1 
4 
7 
5 
3 
6 
7 
3 
4 
7 
' 
, 

' 
7 
2 
' 
, 

' 
c 
8 
2 
e 
4 
f 
7 
4 
a 
b 
2 
8 
5 
6 
b 
f 
' 
, 

' 
1 
4 
e 
8 
7 
d 
a 
0 
6 
d 
e 
2 
8 
0 
0 
7 
' 
, 

' 
1 
f 
a 
f 
4 
5 
a 
4 
' 
, 

' 
8 
3 
f 
8 
e 
8 
c 
8 
' 
, 

' 
6 
' 
, 

' 
c 
7 
b 
d 
9 
6 
e 
2 
' 
, 

' 
c 
7 
b 
d 
9 
6 
e 
2 
' 
, 

' 
a 
7 
9 
9 
a 
5 
b 
f 
' 
, 

' 
4 
b 
6 
6 
4 
d 
c 
f 
' 
, 

' 
5 
d 
9 
5 
5 
8 
0 
4 
' 
, 

' 
3 
d 
2 
8 
3 
1 
f 
2 
' 
, 

' 
1 
' 
, 

' 
1 
' 
] 
, 
[ 
' 
1 
4 
7 
5 
3 
6 
7 
3 
4 
7 
' 
, 

' 
7 
2 
' 
, 

' 
c 
8 
2 
e 
4 
f 
7 
4 
a 
b 
2 
8 
5 
6 
b 
f 
' 
, 

' 
1 
4 
e 
8 
7 
d 
a 
0 
6 
d 
e 
2 
8 
0 
0 
7 
' 
, 

' 
1 
f 
a 
f 
4 
5 
a 
4 
' 
, 

' 
8 
3 
f 
8 
e 
8 
c 
8 
' 
, 

' 
6 
' 
, 

' 
c 
7 
b 
d 
9 
6 
e 
2 
' 
, 

' 
c 
7 
b 
d 
9 
6 
e 
2 
' 
, 

' 
a 
7 
9 
9 
a 
5 
b 
f 
' 
, 

' 
4 
b 
6 
6 
4 
d 
c 
f 
' 
, 

' 
5 
d 
9 
5 
5 
8 
0 
4 
' 
, 

' 
3 
d 
2 
8 
3 
1 
f 
2 
' 
, 

' 
1 
' 
, 

' 
1 
' 
] 
] 

我在這裏錯過了什麼?

+0

你只是簡單的打印元素,你怎麼能指望他們自己分裂? – XZ6H

+5

我不認爲你的'a'的例子與你正在使用的相匹配。不是嵌套列表,而是嵌套列表的_string表示形式,例如'a =「[[1,2,3]]」'。您實際產出的原始數據是每個行上都有單個項目的大列表?我認爲SO編輯已經通過某種方式將其格式化爲您所期望的。 – roganjosh

回答

1

使用ast.literal_eval

>>> a="""[['1475367347', '72', 'c82e4f74ab2856bf', '14e87da06de28007', '1faf45a4', '83f8e8c8', '6', 'c7bd96e2', 'c7bd96e2', 'a799a5bf', '4b664dcf', '5d955804', '3d2831f2', '1', '1'],['1475367347', '72', 'c82e4f74ab2856bf', '14e87da06de28007', '1faf45a4', '83f8e8c8', '6', 'c7bd96e2', 'c7bd96e2', 'a799a5bf', '4b664dcf', '5d955804', '3d2831f2', '1', '1']]""" 
>>> a = ast.literal_eval(a) 
>>> a 
[['1475367347', '72', 'c82e4f74ab2856bf', '14e87da06de28007', '1faf45a4', '83f8e8c8', '6', 'c7bd96e2', 'c7bd96e2', 'a799a5bf', '4b664dcf', '5d955804', '3d2831f2', '1', '1'], ['1475367347', '72', 'c82e4f74ab2856bf', '14e87da06de28007', '1faf45a4', '83f8e8c8', '6', 'c7bd96e2', 'c7bd96e2', 'a799a5bf', '4b664dcf', '5d955804', '3d2831f2', '1', '1']] 
>>> for x in a: 
...  for y in x: 
...   print y 
... 
1475367347 
72 
c82e4f74ab2856bf 
14e87da06de28007 
1faf45a4 
83f8e8c8 
6 
c7bd96e2 
c7bd96e2 
a799a5bf 
4b664dcf 
5d955804 
3d2831f2 
1 
1 
1475367347 
72 
c82e4f74ab2856bf 
14e87da06de28007 
1faf45a4 
83f8e8c8 
6 
c7bd96e2 
c7bd96e2 
a799a5bf 
4b664dcf 
5d955804 
3d2831f2 
1 
1 
+0

非常感謝。這工作。 ast.literal_eval正是我所錯過的。它基本上在分析之前檢查字符串是否是「列表安全的」?對? –

+0

對,它會解析任何從字符串安全列表,字典,int等任何python數據結構。 – Hackaholic

+0

我試着爲你的答案進行投票,因爲這是我的第一篇文章,而且我的聲望小於15。Stackoverflow說它不會顯示我的回覆。 –