簡體   English   中英

比較嵌套列表並查找值匹配的索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM