[英]How to count multiple unique occurrences of unique occurrences in Python list?
假設我在Python中有一個2D列表:
mylist = [["A", "X"],["A", "X"],["A", "Y"],["B", "X"],["B", "X"],["A", "Y"]]
在這種情況下,我的“鍵”將是每個數組的第一個元素(“A”或“B”),而我的“值”將是第二個元素(“X”或“Y”)。 在我合並結束時,輸出應該合並密鑰並計算每個密鑰的唯一出現值,例如:
# Output
# {"A":{"X":2, "Y":2}, "B":{"X":2, "Y":1}}
我試圖使用Python的itertools.groupby,但無濟於事。 類似這個問題的東西。 如果你有更好的方法,請告訴我。
謝謝!
我認為最簡單的方法是使用Counter和defaultdict:
from collections import defaultdict, Counter
output = defaultdict(Counter)
for a, b in mylist:
output[a][b] += 1
L3viathan的答案似乎更好。 但是,這是另一種方法:
mylist = [["A", "X"],["A", "X"],["A", "Y"],["B", "X"],["B", "X"],["A", "Y"]]
dictionary = {"A": {"X": 0, "Y": 0}, "B": {"X": 0, "Y": 0}}
for x in mylist:
dictionary[x[0]][x[1]] += 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.