将多个列表全部添加到一个列表Python中



给定一个列表列表,返回一个包含所有列表列表中的元素。列表的元素可以是任何类型。

样本运行

given_list = [[42,'bottles'], ['of','water','on','the'], ['wall']]
new_list = [42, 'bottles', 'of', 'water', 'on' , 'the', 'wall']

我有点让我的代码正常工作,但与这次示例运行不同,我希望用户为3个列表输入2个内容,然后将这三个列表全部添加到一个列表中。在given_list中保留这些连串列表的同时,我如何将它们全部放入new_list的一个大列表中?

您可以使用extend:

list1 = [42,'bottles']
list2 = ['of','water','on','the']
list3 = ['wall']
new_List = []
new_List.extend(list1)
new_List.extend(list2)
new_List.extend(list3)

print new_List

输出:[42,'bottles','of','water','on','the','wall']

您需要循环浏览所有列表:

for item in list1:
    new_List.append(item)

等等。

list(itertools.chain.from_interable(given_list))?

你甚至可以使用sum(given_list,[])。可能效率不是很高,因为它创建了很多中介列表。

edit:我应该说明itertools方法是有效的。如果你不想使用库,你也可以尝试[i for inner_list in given_list for i in inner_list]。

最新更新