我在下面有一个列表
a = [['1321.', 'Fuji', 'Kto', '776'], ['3123.', 'dake', 'Cu', '392'], ['123.', 'Hota', 'Cu', '310']]
我有两个字符串列表,想按顺序将它们附加到上面的列表中以形成一个新列表。
id = ['pid=1882','pid=1086','pid=180']
lgt = ['38.72347',
'38.23833',
'37.64986']
结果应该变成
new_list = [['1321.', 'Fuji', 'Kto', '776', 'pid=1882', '38.72347'],
['3123.', 'dake', 'Cu', '392', 'pid=1086', '38.23833'],
['123.', 'Hota', 'Cu', '310', 'pid=180', '37.64986']]
我尝试了zip方法,但是输出是一个元组而不是一个列表。
new_list = list(zip(a, id, lgt))
new_list -> [[['1321.', 'Fuji', 'Kto', '776'], 'pid=1882', '38.72347'],
[['3123.', 'dake', 'Cu', '392'], 'pid=1086', '38.23833'],
[['123.', 'Hota', 'Cu', '310'], 'pid=180', '37.64986']]]
谢谢!
答案 0 :(得分:2)
您可以使用zip
,但之后需要打开列表元素。
a = [['1321.', 'Fuji', 'Kto', '776'], ['3123.', 'dake', 'Cu', '392'], ['123.', 'Hota', 'Cu', '310']]
ids = ['pid=1882', 'pid=1086', 'pid=180']
lgt = ['38.72347', '38.23833', '37.64986']
result = [[*x, y, z] for x, y, z in zip(a, ids, lgt)]
print(result)
# [['1321.', 'Fuji', 'Kto', '776', 'pid=1882', '38.72347'], ['3123.', 'dake', 'Cu', '392', 'pid=1086', '38.23833'], ['123.', 'Hota', 'Cu', '310', 'pid=180', '37.64986']]
答案 1 :(得分:2)
利用通过压缩三个列表生成的元组,您可以使用迭代器拆包将ids
和lgt
中的项目分配到一个列表中,以与a
中的列表项目进行连接:< / p>
[s + r for s, *r in zip(a, ids, lgt)]
这将返回:
[['1321.', 'Fuji', 'Kto', '776', 'pid=1882', '38.72347'],
['3123.', 'dake', 'Cu', '392', 'pid=1086', '38.23833'],
['123.', 'Hota', 'Cu', '310', 'pid=180', '37.64986']]
答案 2 :(得分:1)
检查一下:
list = [['1321.', 'Fuji', 'Kto', '776'], ['3123.', 'dake', 'Cu', '392'], ['123.', 'Hota', 'Cu', '310']]
id = ['pid=1882','pid=1086','pid=180']
lgt = ['38.72347','38.23833','37.64986']
for index, value in enumerate(list):
list[index].append(id[index])
list[index].append(lgt[index])
答案 3 :(得分:1)
您可以使用以下解决方案:
[('1321.', 'Fuji', 'Kto', '776', 'pid=1882', '38.72347'),
('3123.', 'dake', 'Cu', '392', 'pid=1086', '38.23833'),
('123.', 'Hota', 'Cu', '310', 'pid=180', '37.64986')]
结果:
list(map(list, zip(*zip(*a), id, lgt)))
如果您需要列表列表:
{{1}}