将一个列表的列表项添加到同一索引处的另一个列表列表

时间:2021-03-25 02:16:13

标签: python list

我怎样才能达到以下结果?两个列表具有相同的索引大小。

list_1 = [ 'arn1', 'arn2' ]

list_2 =[
    ['abc', '123'],
    ['pqr' , '789']
]

expected_output = [ 
    ['abc', '123', 'arn1'],
    ['pqr' , '789', 'arn2']
]

3 个答案:

答案 0 :(得分:2)

当尝试逐项组合两个列表时,您应该始终从 zip 开始。

zip(list_1, list_2)

在这种情况下,您想要的是:

[ys + [x] for x, ys in zip(list_1, list_2)]

给出:

[['abc', '123', 'arn1'], ['pqr', '789', 'arn2']]

答案 1 :(得分:1)

您可以使用 enumerate 循环到第一个列表,获取索引然后附加到第二个列表。

list_1 = [ 'arn1', 'arn2' ]

list_2 =[
    ['abc', '123'],
    ['pqr' , '789']
]

for i, item in enumerate(list_1):
    list_2[i].append(item)

print(list_2)

答案 2 :(得分:1)

一个稍长但更简单的解决方案:

list_1 = ['arn1', 'arn2']

list_2 = [['abc', '123'], ['pqr', '789']]

expected_output = [['abc', '123', 'arn1'], ['pqr', '789', 'arn2']]

output = []
for i in range(0, len(list_1)):  # iterates 
    added_list = list_2[i] + [list_1[i]]
    output.append(added_list)
print(output == expected_output)
# True

或者列表理解,如果你想要一个:

output_list_comprehension = [list_2[i] + [list_1[i]] for i in range(0, len(list_1))]
#returns same answer