给定一个列表列表,返回一个包含所有列表列表中的元素。列表的元素可以是任何类型。
样本运行
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]。