【发布时间】:2016-12-24 23:07:05
【问题描述】:
我有以下清单:
data = [('A', 'B'), ('C','D'), ('E','F'), ('G','H'), ('B','A'), ('D','C')]
第一个和第二个元素的顺序无关紧要,例如,('A', 'B') 和 ('B','A') 被视为相同。期望的结果是:
('A','B') 2
('C','D') 2
('E','F') 1
('G','H') 1
我试过这个(改编自How to count number of duplicates in a list of tuples?):
data = [('A', 'B'), ('C','D'), ('E','F'), ('G','H'), ('B','A'), ('D','C')]
from collections import Counter
for i, j in Counter(data).most_common():
print i, j
结果如下:
('G', 'H') 1
('B', 'A') 1
('E', 'F') 1
('A', 'B') 1
('D', 'C') 1
('C', 'D') 1
有什么建议吗?
【问题讨论】:
-
每个元组中是否总是只有两个项目?
-
是的。每个元组中有两个项目。
-
参见例如stackoverflow.com/q/41259493/3001761,您可以调整它以与计数器一起使用。或者只是
map(frozenset, data)。 -
统计每个列表中字母出现的次数作为中间步骤。
标签: python