2024-05-19 03:20:33 发布
网友
if group not in g: g[group] = set() g[group].add(name)
浏览具有此结构的组列表:
Group: A Name: Bob
并将属于特定组的人员的名称添加到集合中。集合中的名称是唯一的,我们不知道一个组中有多少相似的名称。因此,例如,如果有两个“Bob”名称或5个“Mike”名称,我如何计算这些名称的多次出现次数,并得到如下结果:
Group A: Bob 2, Mike 5 Group B: Jane 4
等等。提前谢谢。
看来你最好用Counter:
>>> from collections import Counter >>> mylist = ["Bob", "Mike", "Bob", "Mike", "Mike", "Mike", "Bob"] >>> Counter(mylist) Counter({'Mike': 4, 'Bob': 3})
使用听写进行计数,例如:
tralala = dict() for group, name in [('A', 'Bob'), ('B', 'Jane'), ('A', 'Bob')]: tralala.setdefault(group, dict()).setdefault(name, 0) tralala[group][name] += 1 print tralala
这将导致
{'A': {'Bob': 2}, 'B': {'Jane': 1}}
from collections import Counter, defaultdict lst = [('B', 'Bob'), ('A', 'Andy'), ('C', 'Charles'), ('A', 'Adam'), ('B', 'Abraham')]# assumes people can appear in more than one group def groups(lst): counter = Counter(lst) result = defaultdict(dict) for (group, name), value in counter.iteritems(): result[group][name] = value return result
lst = [('B', 'Bob'), ('A', 'Andy'), ('C', 'Charles'), ('A', 'Adam'), ('B', 'Abraham')]
# assumes people can appear in more than one group def groups(lst): counter = Counter(lst) result = defaultdict(dict) for (group, name), value in counter.iteritems(): result[group][name] = value return result
看来你最好用Counter:
使用听写进行计数,例如:
这将导致
相关问题 更多 >
编程相关推荐