我有一份清单清单:
[['John', 'Sergeant '], ['Jack', 'Commander '], ['Jill', 'Captain ']]
如何将其与单个列表合并,如:
['800','854','453']
最终结果如下:
[['John', 'Sergeant', '800'], ['Jack', 'Commander', '854'], ['Jill', 'Captain', '453']]
最初我试过:
zip(list_with_lists,list)
但数据已被混淆
答案 0 :(得分:29)
a = [['John', 'Sergeant '], ['Jack', 'Commander '], ['Jill', 'Captain ']]
b = ['800', '854', '453']
c = [x+[y] for x,y in zip(a,b)]
print c
结果:
[['John', 'Sergeant ', '800'], ['Jack', 'Commander ', '854'], ['Jill', 'Captain ', '453']]
答案 1 :(得分:4)
使用enumerate
代替zip
的解决方案:
a = [['John', 'Sergeant '], ['Jack', 'Commander '], ['Jill', 'Captain ']]
b = ['800','854','453']
c = [a[i]+[bi] for i,bi in enumerate(b)]
在这种特殊情况下,使用zip
绝对是更加pythonic的解决方案。但是,有时您希望能够访问索引(是的,即使在Python中),因此了解enumerate
也很有用。
答案 2 :(得分:1)
range
代替zip
a = [['John', 'Sergeant '], ['Jack', 'Commander '], ['Jill', 'Captain ']]
b = ['800','854','453']
c = [a[x]+[b[x]] for x in range(len(b))]
print c
或更新原始列表:
[a[x].append(b[x]) for x in range(3)]