【发布时间】:2015-09-10 10:04:50
【问题描述】:
输入是一个字符串元组列表,我需要一个计数
- 每个字符串元组出现多少次
- 字符串元组的一个元素出现了多少次
- 字符串元组的其他元素出现了多少次
我目前正在这样做:
>>> from collections import Counter
>>> data = [('foo','bar'), ('foo', 'bar'), ('foo', 'doo'), ('joo', 'doo'), ('koo', 'lar')]
>>> datacount = Counter(data)
>>> datacount
Counter({('foo', 'bar'): 2, ('joo', 'doo'): 1, ('koo', 'lar'): 1, ('foo', 'doo'): 1})
>>> x, y = zip(*datacount.keys())
>>> x
('joo', 'foo', 'koo', 'foo')
>>> y
('doo', 'bar', 'lar', 'doo')
>>> xcount = Counter(x)
>>> ycount = Counter(y)
>>> xcount
Counter({'foo': 2, 'koo': 1, 'joo': 1})
>>> ycount
Counter({'doo': 2, 'bar': 1, 'lar': 1})
但我意识到它占用了三个单独的计数器。 除了获取计数和其他我可以轻松获取计数的数据结构之外,还有其他方法吗?
【问题讨论】:
-
这有什么低效的?
标签: python memory-management tuples hashtable counter