我正在开发一个项目,我希望使用列表推导来打印出如下所示的嵌套列表
[['Jonathan', 'Adele', 'David', 'Fletcher', 'Steven',["A","B","C"]],['Nathan', 'Tom', 'Tim', 'Robin', 'Lindsey']]
这需要将每个名称打印为字符串。我可以像下面那样打印
['Jonathan',
'Adele',
'David',
'Fletcher',
'Steven',
['A', 'B', 'C'],
'Nathan',
'Tom',
'Tim',
'Robin',
'Lindsey']
但是,我不希望A,B,C作为列表打印。我需要印刷品像其他名字一样。我如何在这里应用列表理解?请帮忙。
答案 0 :(得分:0)
我可能会提供不同的列表。这些过程
A=[['aaa', 'bbb', 'ccc',["A","B","C"]],['ddd', 'eee', 'fff']];
B=A[0];
B.extend(A[1]);
将导致B
:
['aaa', 'bbb', 'ccc',["A","B","C"],'ddd', 'eee', 'fff'];
在此之后您可以执行类似的步骤:
C = B.pop(3);
B.extend(C);
现在列表B
已成为:
['aaa', 'bbb', 'ccc','ddd', 'eee', 'fff', "A", "B", "C"];
这可能与您要查找的内容完全不同。希望这会有所帮助。
答案 1 :(得分:0)
你可能最好使用递归函数而不是列表推导,因为这适用于具有更多嵌套的一般情况。
my_list = [["Jonathan", "Adele", "David", "Fletcher", "Steven", ["A", "B", "C"]], ["Nathan", "Tom", "Tim", "Robin", "Lindsey"]]
def flatten(list_):
result = []
for element in list_:
if type(element) == list:
result += flatten(element)
else:
result.append(element)
return result
print("Before:\t{}".format(my_list))
my_list = flatten(my_list)
print("After:\t{}".format(my_list))
输出:
Before: [['Jonathan', 'Adele', 'David', 'Fletcher', 'Steven', ['A', 'B', 'C']], ['Nathan', 'Tom', 'Tim', 'Robin', 'Lindsey']]
After: ['Jonathan', 'Adele', 'David', 'Fletcher', 'Steven', 'A', 'B', 'C', 'Nathan', 'Tom', 'Tim', 'Robin', 'Lindsey']