Как подсчитать количество переменных в словаре

#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