繁体   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