对多个变量进行分组并计算唯一组合的数量

时间:2011-05-27 10:29:48

标签: python string variables

使用Python,我正在尝试打印一个表,其中包含基于一组数据的整理信息。

  

Data 1 - 'Car', 'Cadillac','Blue'

     

Data 2 - 'Car', 'Aston Martin','Black'

     

Data 3 - 'Car', 'Cadillac', 'Blue'

现在我需要找到相同组合发生的次数 - 即我想打印'Car''Cadillac''Blue'的组合出现两次,另一次一次。我如何在Python中执行此操作?

编辑:我正在使用Python 2.4!

5 个答案:

答案 0 :(得分:2)

首先将字符串元组化并将其全部放入列表中;然后使用count

>>> list
[('Car', 'Cadillac','Blue'), ('Car', 'Aston Martin','Black'), ('Car', 'Cadillac', 'Blue'), ...]
>>> list.count(('Car', 'Cadillac', 'Blue'))
1

答案 1 :(得分:1)

>>> from collections import Counter
>>> Counter(['apple','red','apple','red','red','pear'])
Counter({'red': 3, 'apple': 2, 'pear': 1})

请参阅Collections in docs.python.org在python 2.7中可用

编辑:

与python 2.4兼容的列表方法

In [1]: cars = [('Car', 'Cadillac', 'Blue'), ('Car', 'Aston Martin', 'Black'), ('Car', 'Cadillac', 'Blue')]

In [2]: cars.count(('Car', 'Cadillac', 'Blue'))
Out[2]: 2

答案 2 :(得分:0)

首先,从list = ('a','b','c')开始,如果您想利用现有的标准库检查http://docs.python.org/library/itertools.html#itertools.combinations

如果你是初学者,我建议你不要去图书馆,如果你想学习一些东西,你应该先尝试自己解决。

答案 3 :(得分:0)

Python允许任何可散列的不可变对象成为字典中的键,因此您可以使用元组('Car', 'Cadillac', 'Blue')作为键。你可以使用collections.Counter

答案 4 :(得分:0)

您可以使用python Counter

>>> from collections import Counter
>>> list = [('car','astin'),('car','cadillac'),('car','astin')]
>>> Counter(list)
Counter({('car', 'astin'): 2, ('car', 'cadillac'): 1})