假设我在Python中有一个2D列表:
mylist = [["A", "X"],["A", "X"],["A", "Y"],["B", "X"],["B", "X"],["A", "Y"]]
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我的"键"将是每个数组的第一个元素("A"或"B"),而我的"值"将是第二个元素("X"或"Y").在我合并结束时,输出应该合并密钥并计算每个密钥的唯一出现值,例如:
# Output
# {"A":{"X":2, "Y":2}, "B":{"X":2, "Y":1}}
Run Code Online (Sandbox Code Playgroud)
我试图使用Python的itertools.groupby,但无济于事.类似这个问题的东西.如果你有更好的方法,请告诉我.
谢谢!
L3v*_*han 13
我认为最简单的方法是使用Counter和defaultdict:
from collections import defaultdict, Counter
output = defaultdict(Counter)
for a, b in mylist:
output[a][b] += 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |