[英]Comparing nested list and finding index of value match
我正在寻找基于第一个索引的嵌套列表中的匹配项,并添加匹配的每个列表的浮点数。
假设我有这个嵌套列表:
a = [[1234, 5678, 4.5], [0987, 6543, 6.8], [4321, 5678, 9.8]]
我正在寻找一种方法来查找列表中的第一个索引与“a”中的另一个列表的匹配项,一旦找到匹配项,就将第二个索引的值相加。
我尝试了很多方法来检查匹配,例如嵌套 for 循环、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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.