我希望在基于第一个索引的嵌套列表中查找匹配项,并添加每个匹配项的列表的浮点数。
假设我有这个嵌套列表:
a = [[1234, 5678, 4.5], [0987, 6543, 6.8], [4321, 5678, 9.8]]
我正在寻找一种方法来查找列表中第一个索引与"a"中另一个列表的匹配项,一旦找到匹配项,就将第二个索引的值相加。
我尝试了很多方法来检查匹配项,例如嵌套的循环、any(( 函数以及诸如以下内容的内容:
match = []
if a[x][1] in a[0:-1][1]:
a.pop(x)
match.append(x)
根据匹配项创建一个新列表并以这种方式进行比较,但它似乎从未奏效。 所有这些方法似乎都只在发生匹配时返回,而不是与匹配关联的特定索引。
我是否应该创建一个字典,其中键是第一个索引,值是第二个索引并以这种方式进行比较?或者有没有其他方法可以检查匹配项的索引并在循环中进行比较?
正如您在问题末尾建议的那样,您可以使用字典来执行您想要的操作,使用第一个索引值作为键,第二个索引作为值。循环访问列表列表,将项目存储在字典中。如果已存在,请添加值。
a = [[1234, 5678, 4.5], [987, 6543, 6.8], [4321, 5678, 9.8]]
d = {}
for l in a:
id = l[1]
if id not in d:
d[id] = l[2]
else:
d[id] += l[2]
print(*d.items())
输出:
(5678, 14.3) (6543, 6.8)