Python:将第一个列表与列表中的每个列表合并

时间:2014-07-29 10:08:57

标签: python list

我有清单:

list_mix = [['1','2','3'],['a','b','c'], ['d','e','f'], ['g','h','i']]

第一个列表必须与list_mis中的其他列表合并。结果应该是:

['1','2','3','a','b','c']
['1','2','3','d','e','f']
['1','2','3','g','h','i']

以下代码给出了“TypeError:list indices必须是整数,而不是list”:

for item in list_mix[1:]:
    print (list_mix[0] + list_mix[item])

任何没有外部库的解决方案都将受到赞赏。

2 个答案:

答案 0 :(得分:3)

item是子列表已经不是索引。直接使用它:

for item in list_mix[1:]:
    print (list_mix[0] + item)

Python for语句为Foreach loop construct,依次将list_mix[1:]中的每个元素分配给item

演示:

>>> list_mix = [['1','2','3'],['a','b','c'], ['d','e','f'], ['g','h','i']]
>>> for item in list_mix[1:]:
...     print (list_mix[0] + item)
... 
['1', '2', '3', 'a', 'b', 'c']
['1', '2', '3', 'd', 'e', 'f']
['1', '2', '3', 'g', 'h', 'i']

答案 1 :(得分:1)

使用列表推导将每个子列表添加到list_mix的子列表0,use list_mix[1:]以从['1','2','3']之后的元素开始。

[list_mix[0] + x for x in list_mix[1:]]
[['1', '2', '3', 'a', 'b', 'c'], ['1', '2', '3', 'd', 'e', 'f'], ['1', '2', '3', 'g', 'h', 'i']]