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