Я применил функцию счетчика из модуля коллекций к списку. После того, как я это сделаю, я не совсем понимаю, о чем будет охарактеризовано содержание новой структуры данных. Я также не уверен, какой предпочтительный метод для доступа к элементам.Python - доступ к содержимому списка после применения метода Counter from collections
Я сделал что-то вроде:
theList = ['blue', 'red', 'blue', 'yellow', 'blue', 'red']
newList = Counter(theList)
print newList
, который возвращает:
Counter({'blue': 3, 'red': 2, 'yellow': 1})
Как получить доступ к каждому элементу и распечатать что-то вроде:
blue - 3
red - 2
yellow - 1
Любое руководство будет будем очень благодарны.
Edit:
Благодаря Энди, я думаю, что это решение моей проблемы:
for i,j in newList.most_common():
print i, j
Спасибо. Это многое проясняет. Есть ли способ заставить пары ключ-значение печатать в порядке убывания количества? –
Словари являются несортированными, но вы можете совершить небольшое обруч, чтобы сделать печать в отсортированном порядке. См. Этот ответ для получения дополнительной информации (и принятого ответа для OrderedDictionaries в целом): http://stackoverflow.com/a/13990710/189134 – Andy
Спасибо. Это большая помощь. Я думаю, что нашел решение, изменив свой код с newList.items() на newList.most_common(). –