2016-10-14 2 views
-3

Это мой текущий код, который добавляет разное время к тому же имени id в dict.Как подсчитать количество переменных в словаре

for name, date, time ,price in reader(f): 
      group_dict[name].append([time]) 

мой вопрос, как я подсчитать количество «времени» я есть в каждом ключе в Словаре?

Пример вывода является

{(name1): [time1, time2, time3]} 

и я пытаюсь способ включить счетчик «3» внутри

+0

Ваш вопрос не очень Чисто. Вы хотите, чтобы сумма всех счетов? Или каждый из счетов в отдельности? Вы просто хотите отображать эти подсчеты или хранить их где-нибудь (например, оригинальный dict)? –

+0

Я хочу отобразить счет как часть словарного ключа, поэтому пример списка с элементом 3 'time' внутри будет содержать 3 в одной из его клавишной клавиши –

ответ

2
for key, value in yourDict.iteritems(): 
    print len(value) 

если вы хотите включить в вашей структуре попробовать:

for key, value in yourDict.iteritems(): 
    yourDict[key] = (value, len(value)) 

Код для python2 для python 3 используйте элементы() вместо iteritems()

+0

. Я немного запутался. в моем случае, какой должен быть «ключ»? –

+0

Вы проверили свой второй пример? это, кажется, вызывает ошибку. –

+0

Вам нужно изменить 'для ключа, значение в yourDict:' to 'для ключа, значение в вашемDict.items():' в обоих случаях (или 'yourDict.iteritems()' в Python 2). –

0

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

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 
Смежные вопросы