我怎样才能达到以下结果?两个列表具有相同的索引大小。
list_1 = [ 'arn1', 'arn2' ]
list_2 =[
['abc', '123'],
['pqr' , '789']
]
expected_output = [
['abc', '123', 'arn1'],
['pqr' , '789', 'arn2']
]
答案 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