#python #csv #count
#питон #csv-файл #граф
Вопрос:
Это мой текущий код для добавления другого времени к одному и тому же идентификатору имени в dict.
for name, date, time ,price in reader(f): group_dict[name].append([time])
мой вопрос в том, как мне подсчитать количество «времени», которое у меня есть в каждом ключе в dict?
Примером вывода является
{(name1): [time1, time2, time3]}
и я пытаюсь найти способ включить счетчик «3» внутрь
Комментарии:
1. Ваш вопрос не совсем ясен. Вам нужна сумма всех подсчетов? Или каждый из подсчетов по отдельности? Вы просто хотите отобразить эти подсчеты или сохранить их где-нибудь (например, в исходном dict)?
2. я хочу отобразить количество как часть ключа словаря, поэтому, например, список с 3 элементами ‘time’ внутри будет содержать 3 в одном из его dict-ключа
Ответ №1:
for key, value in yourDict.iteritems():
print len(value)
если вы хотите включить в свою структуру, попробуйте:
for key, value in yourDict.iteritems():
yourDict[key] = (value, len(value))
Код для python2 для python 3 используйте items() вместо iteritems()
Комментарии:
1. я здесь немного запутался. в моем случае каким должен быть «ключ»?
2. Вы протестировали свой второй пример? кажется, это вызывает ошибку.
3. Вам нужно изменить
for key, value in yourDict:
for key, value in yourDict.items():
в обоих случаях (илиyourDict.iteritems()
в Python 2).
Ответ №2:
Вы можете добиться того, чего хотите, переназначив значение вашего ключа, включив в него длину его значения:
for key, value in yourDict.items(): # Change to .iteritems() if using Python 2.x
yourDict[key] = value [len(value)]
Или вы могли бы сделать это, используя понимание по словарю:
yourDict = {key:value [len(value)] for key, value in yourDict.items()} # Python 3.x
yourDict = {key:value [len(value)] for key, value in yourDict.iteritems()} # Python 2.x