python - 如何将这个元组的元组转换为其元素的计数?

标签 python python-2.7 count tuples

我有元组的这个 元组:

TupleOfTuples = (('Venue1', 'Name1'), ('Venue1', 'Name2'), 
                 ('Venue2', 'Name3'), ('Venue3', 'Name4'), 
                 ('Venue3', 'Name5'), ('Venue3', 'Name6'))

我想将它转换成这样的结果:

Output = (('Venue1', 2), ('Venue2', 1), ('Venue3', 3))

在这种情况下,Output包含('Venue1', 2),例如,其中2的次数>'Venue1' 出现在 TupleOfTuples 中。

我尝试使用 len() 来计算出现的次数,但它不起作用,因为 TupleOfTuples 不是单个元组而是元组的元组。

在Python2.7中如何做到这一点?

最佳答案

使用collections.Counter()计算你有多少次出现:

from collections import Counter

Output = Counter(t[0] for t in TupleOfTuples).items()

Counter() 是一个字典,其中键映射到计数;通过传入生成器表达式,它将为您进行计数。因为它是一个字典子类,所以可以使用 dict.items() 生成一个 (key, count) 元组列表。

这确实产生了一个列表;如果您坚持要在此处使用元组,只需对其调用 tuple()

演示:

>>> from collections import Counter
>>> TupleOfTuples = ( ('Venue1', 'Name1'), ('Venue1', 'Name2'), ('Venue2', 'Name3'), ('Venue3', 'Name4'), ('Venue3', 'Name5'), ('Venue3', 'Name6') )
>>> Counter(t[0] for t in TupleOfTuples).items()
[('Venue1', 2), ('Venue3', 3), ('Venue2', 1)]

关于python - 如何将这个元组的元组转换为其元素的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24347482/

相关文章:

python - django modelchoicefield 与未保存的模型

javascript - 使用 django-nvd3 绘制图表,图表未显示

python - 如何将 python 2.7 中的 bytearray 转换为十进制字符串?

python - 如何打印使用类实现的树数据结构?

python - 我如何从 Ubuntu 上的源代码自己构建 python?

python - 从 Django 管理员发布时出现 Django ConnectionError (urllib3.connection.HTTPConnection)

python - 编译调用配置文件

MySQL 按顺序和计数分组(不同)

java - 使用 HashMap 创建文本字数统计

mysql - 表的两列和另一表的一列的计数