これらの2つのリストを考えると
L2 = [A,B,C,D,A,B]
L3 = [3,2,1,2,2,1]
入手したい
L2_WANTED = [A,B,C,D]
L3_WANTED = [5,3,1,2]
リストは常に順序付けられており、同じサイズと要素がキーと値のペア(A:3、B:2など)として対応しています。
目的は、L2の重複を排除し、L3の対応する項を合計して、一致するペアを持つ新しいリストを取得することです。これは、アイテムがリストに追加されるときに、アイテムの実行リストを保持するためです。
で関数を書こうとしましたindex
が、醜くなり始めました。確認itertools
しましたが、関連するものは見つかりませんでした。私は見ましstarmap()
たが、それを機能させることができませんでした。おそらく、これはリスト内包表記でも実行できます。この最も簡単な方法を実現する方法についての手がかりや指示をいただければ幸いです。ありがとうございました。
編集
@SimonC:
>>> l2_sum = {}
>>> for i in range(0, len(L2)):
key = L2[i]
num = L3[i]
l2_sum[key] = l2_sum.get(key, 0) + num
>>> l2_sum
{'A': 5, 'C': 1, 'B': 3, 'D': 2}
>>>
これはどのようにして重複を排除し、数字を追加しますか?手がかりを教えてもらえますか?ありがとう。