我在列表化之后有以下列表列表:
[['Who', 'are', 'you', '?'],
['I', 'do', 'not', 'know', 'who', 'you', 'are'],
['What', 'is', 'your', 'name', '?']]
现在我希望有一个包含“简单”元素的列表,例如:
['Who','are','you','?','I','do','not','know','who'...]
我已经尝试过我能想到的一切,使用(嵌套)for循环,(嵌套)循环...我要么得到列表['Who','Who','Who',...]
(依此类推),要么{{1} }}
有人可以帮帮我吗?谢谢!
答案 0 :(得分:1)
你可以试试这个
Python> = 2.6,使用itertools.chain.from_iterable()
,不需要解压缩列表:
>>> import itertools
>>> list2d = [["who", "are", "you", "?"]....]
>>> merged = list(itertools.chain.from_iterable(list2d))
答案 1 :(得分:0)
您可以在python中使用extend函数
In [1]: a= [['Who', 'are', 'you', '?'], ['I', 'do', 'not', 'know', 'who', 'you', 'are'], ['What', 'is', 'your', 'name', '?']]
In [2]: b = []
In [3]: for list_ in a:
b.extend(list_)
...:
In [4]: b
Out[4]: ['Who','are','you','?','I','do', ...]
答案 2 :(得分:0)
您要合并列表吗?
flat_list = []
for list_item in nested_list:
flat_list += list_item
>>flat_list
>>['Who', 'are', 'you', '?', 'I', 'do', 'not', 'know', 'who', 'you', 'are', 'What', 'is', 'your', 'name', '?']
可以查看可能的重复项here
答案 3 :(得分:0)
只是在看到其他答案时的记录,更pythonic的方式是使用nested list comprehension,如下所示:
original_list = [[1], [2, 3]]
flat_list = [i for sublist in original_list for i in sublist]