簡體   English   中英

如何計算Python列表中多個唯一出現的唯一事件?

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

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