我被困在Python中。我需要创建和解析一个3级列表。 例如,列表中列表内的列表。
2个级别对我有用,但是第三个级别是如此混乱请帮助
l= [1,5,6,7,8,['a','b','c','d']]
a= ['name 1','name 2',l]
for i in a:
if type(i) == type([]):
for j in i:
print(j, end=' ')
for k in j:
if type(j) == type([]):
print('non')
else:
print(i, end=' ')
答案 0 :(得分:0)
for i in a:
if type(i) is list: ## If i is a list
for j in i:
if type(j) is list: ## If j is a list
for k in j:
print(k)
else:
print(j)
else:
print(i)
答案 1 :(得分:0)
听起来你只是错过了一个缩进:
l= [1,5,6,7,8,['a','b','c','d']]
a= ['name 1','name 2',l]
for i in a:
if type(i) == list:
for j in i:
if type(j) == list:
for k in j:
print(k, end=' ')
else:
print(j, end=' ')
else:
print(i, end=' ')
答案 2 :(得分:0)
正如人们所说,我们不知道你的目的是什么,所以很难帮助你。
但是,这里有一些提示:
for
循环中的元素应缩进isinstance
解决问题的代码可能如下所示
nested_list = [
'name1',
'name2',
[
1, 3, 5, 7,
['a', 'b', 'c', 'd']
]
]
for i in nested_list:
if isinstance(i, list):
for j in i:
# Do something with j
if isinstance(j, list):
for k in j:
# Do something with k, like for example
print("%s ==> %s ==> %s" % (i, j, k))
else:
# Do something else with i, like for example
print("I: %s" % i)`
如果您只需要打印列表,则更简单的方法是使用模块pprint
。有关优秀的教程,请参阅PythonModuleOfTheWeek。
您只需执行以下操作:
import pprint
nested_list = [
'name1',
'name2',
[
1, 3, 5, 7,
['a', 'b', 'c', 'd']
]
]
pprint.pprint(nested_list)