比较两个不等长和不匹配元素的列表

时间:2019-09-18 15:18:16

标签: python list

我有两个长度不相等且值不匹配的列表,如下所示:

list_1 = [1,7,9]
list_2 = [0.1,0.2,0.3,0.8,0.11,0.12,0.13,0.14,0.19,0.009]

对于list_1中的每个值,我想提取其在list_2中的匹配值。结果应该是这样的:

result[1:0.1,7:0.13,9:0.19]

目前我有这个:

find_minimum = min(len(list_1),len(list_2))
for i in range(find_minimum):
    print(list_1[i],list_2[i])

这是结果:

1:0.1
2:0.2
3:0.3

2 个答案:

答案 0 :(得分:1)

您应该查找python dictionaries,它允许键到值的映射。您还应该知道python的索引为零,因此list_1的第一项是list_1[0]

使用字典,您可以编写类似的解决方案

result = dict() # a new dictionary, could also just write result = {}
for i in list_1:
    result[i] = list_2[i-1]
print(result)

将打印

{1: 0.1, 7: 0.13, 9: 0.19}

您经常会看到人们为此使用dict理解

result = {i: list_2[i-1] for i in list_1}

答案 1 :(得分:0)

您不想查找i中的第list_2个索引,而是想查找第list_1[i]个索引。

for i in range(find_minimum):
    print(list_1[i], list_2[list_1[i]])

如果难以理解,请将list_1[i]保存在一个临时变量中,以使其更易于理解:

for i in range(find_minimum):
    index = list_1[i]
    print(index, list_2[index])