2015-07-17 1 views
2

Я новичок в Python и программировании, поэтому, пожалуйста, простите потенциально глупый вопрос.Как сделать словарь с помощью счетчика Python с помощью правильных клавиш?

Я использую метод счетчика из модуля коллекций по списку, и я использую Dict() на этом, чтобы сделать словарь из результатов:

state_count = ['Alabama','Alabama','Alabama','Alaska','Alaska'] 
print dict(Counter(state_count)) 

данные поступают из вида:

{'Alabama': '3', 'Alaska': '2'} etc. 

то, что я хочу, чтобы создать словарь, где имя состояния является ключевым, и это будет выглядеть следующим образом:

{'state':'Alabama','other_value':'3'} 
{'state':'Alaska','other_value':'2'} 

Решение не должно включать использование метода Counter, я просто хочу, чтобы список, который имеет каждое имя состояния несколько раз, и подсчитывает, сколько раз упоминается каждое имя состояния, используя вышеупомянутый формат словаря.

+0

Ваш результат не ясен, –

+0

Почему это не работает для вас: '{'Alabama': '3', 'Alaska': '2'}' –

ответ

3

Перебирайте элементы словаря и печатайте ключи, значения как значения строковых ключей state и other_value.

from collections import Counter 
state_count = ['Alabama','Alabama','Alabama','Alaska','Alaska'] 
m = Counter(state_count) 
for i, j in m.items(): 
    print {'state':i, 'other_value':j} 

Выход:

{'state': 'Alabama', 'other_value': 3} 
{'state': 'Alaska', 'other_value': 2} 
+0

спасибо! это делает – kdef33

0

Если вы хотите использовать данные в списке формата dicts, вы можете легко создать такой список:

from collections import Counter 
state_count = ['Alabama','Alabama','Alabama','Alaska','Alaska'] 
dict_list = [{"state":k,"other_value":v} for k,v in Counter(state_count).items()] 

print dict_list[0] #{'state': 'Alabama','other_value': 3} 
print dict_list[0]["state"] #'Alabama' 

Это оставляет вас с данные в пригодной для использования форме, а не только напечатанную продукцию.

Смежные вопросы