Подсчет записей с типом словаря Python - PullRequest
0 голосов
/ 24 марта 2011

Я изучаю Python и пишу программу, которая отслеживает общее количество различных типов расширений файлов.Я думаю, что словарь был бы идеальным типом данных для отслеживания этой информации, что-то вроде:

.txt  14
.c    27
.java 12

У меня есть некоторый написанный код, который создает набор, который устраняет дубликаты расширений файлов, но как бы я использовал словарьв Python делать то же самое, но отслеживать количество вхождений?

ext_list = set()
for i in file_list:
    ext_list.add(i.extension)

Ответы [ 2 ]

7 голосов
/ 24 марта 2011

В Python 2.7 или выше вы можете использовать collections.Counter:

from collections import Counter
c = Counter(i.extension for i in file_list)
print(c)

Counter - это класс, производный от стандартного Python dict.

Если вы предпочитаете использовать простой dict, вы можете воспользоваться его setdefault() методом:

counts = {}
for i in file_list:
    counts.setdefault(i.extension, 0)
    counts[i.extension] += 1
3 голосов
/ 24 марта 2011
ext_count = collections.defaultdict(int)
for i in file_list:
  ext_count[i.extension] += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...