Вы получаете сообщение об ошибке, потому что вы пытаетесь вставить список из 5 элементов в конструктор словаря, когда он принимает только два элемента (в конструкторе dict Python считает, что вы используете):
здесьсписок возможных конструкторов
dict(one=1, two=2)
dict({'one': 1, 'two': 2})
dict(zip(('one', 'two'), (1, 2)))
dict([['two', 2], ['one', 1]])
взят из python docs
вам нужно будет разделить вашу строку по-другому или найти лучший способ форматирования ваших данных.Если вы читаете из файла csv
, обратитесь к ответу Майкла Хоффмана, который является правильным способом чтения из CSV.
Если нет, укажите, что вы делаете и почему.
РЕДАКТИРОВАТЬ: Цель добавлена, ответ обновлен
для ввода:
axe99:315 W. 115th Street, Apt. 11B:New York:NY:10027
jab44:23 Rivington Street, Apt. 3R:New York:NY:10002
ap172:19 Boxer Rd.:New York:NY:10005
jb23:115 Karas Dr.:Jersey City:NJ:07127
jb29:119 Xylon Dr.:Jersey City:NJ:07127
ak9:234 Main Street:Philadelphia:PA:08990
код:
city_dict = {}
for line in open('ex1.txt'):
if item.split(':')[3] in city_dict:
city_dict[item.split(':')[3]] += 1
else:
city_dict[item.split(':')[3]] = 1
print (city_dict)
выведет то, что вы хотите:
{'NY': 3, 'NJ': 2, 'PA': 1}