Группировка нескольких переменных и подсчет количества уникальных комбинаций - PullRequest
0 голосов
/ 27 мая 2011

Используя Python, я пытаюсь распечатать таблицу с сопоставленной информацией, основанной на наборе данных, подобных этому.

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

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

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

Теперь мне нужно узнать, сколько раз встречается одна и та же комбинация - т.е. я хотел бы напечатать, что комбинация 'Car', 'Cadillac' и 'Blue' встречается дважды, а другой - один раз.Как мне сделать это в Python?

EDIT : я использую Python 2.4!

Ответы [ 5 ]

2 голосов
/ 27 мая 2011

Сначала кортеж строки и поместите все это в список; затем используйте count

>>> list
[('Car', 'Cadillac','Blue'), ('Car', 'Aston Martin','Black'), ('Car', 'Cadillac', 'Blue'), ...]
>>> list.count(('Car', 'Cadillac', 'Blue'))
1
1 голос
/ 27 мая 2011
>>> from collections import Counter
>>> Counter(['apple','red','apple','red','red','pear'])
Counter({'red': 3, 'apple': 2, 'pear': 1})

См. Коллекции в docs.python.org Доступно в python 2.7

Edit:

Список подходов, совместимых с 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
0 голосов
/ 27 мая 2011

Вы можете использовать питона Счетчик

>>> from collections import Counter
>>> list = [('car','astin'),('car','cadillac'),('car','astin')]
>>> Counter(list)
Counter({('car', 'astin'): 2, ('car', 'cadillac'): 1})
0 голосов
/ 27 мая 2011

Python позволяет любым хешируемым неизменным объектам быть ключами в словарях, поэтому вы можете использовать кортеж ('Car', 'Cadillac', 'Blue') в качестве ключа.Вы можете сделать это с помощью collections.Counter.

0 голосов
/ 27 мая 2011

Во-первых, начните с чего-то вроде list = ('a','b','c'), и если вы хотите воспользоваться преимуществами проверки стандартной библиотеки http://docs.python.org/library/itertools.html#itertools.combinations

Я бы не советовал вам переходить в библиотеки, если вы новичок,Если вы хотите чему-то научиться, сначала попытайтесь решить это самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...