我有一個像下面乘的元組元素的元組的第一個元素相匹配否則忽略
[(0, 33), (3, 26), (4, 95), (0, 28), (1, 12), (2, 3), (4, 69)]
我要乘的元組的第二個元素的元組的列表,如果第一個元素匹配(一次或多次);如果不是,我會忽略這個元組。因此,輸出應該是
33 * 28 + 95 * 69 = 7479
目前,我做了以下內容:
- 使用計數器來檢查元組的第一個元素的存在。
- 迭代集合以查看是否存在1元組元組或更多;忽略了1元的人
- 迭代非1元的元組在字典的
values
添加到字典和更新乘 - 使用
sum
功能
我不知道是否有一個Python化的方式來減少這一點。我很確定我在這裏使事情變得複雜。
的Python的方式很可能是沿着線:有字典的鍵是第一個元素,並沿着整個列表走一遍,更新字典。每個值都包含「它看起來不止一個」和「這是迄今爲止這些項目的產品」等信息。 –
我不知道是否像'ifilter'可以幫助。 – Dexter
在你的地方,我會按照上面描述的步驟編寫算法,而不用擔心一些itertools函數。 –