2016-10-14 10 views
-3

Dies ist mein aktueller Code, um unterschiedliche Zeit an die gleiche Namen-ID in einem Dict anzuhängen.So zählen Sie die Anzahl der Variablen in einem Wörterbuch

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

meine Frage ist, wie ich zähle die Anzahl der 'Zeit' i in der dict in jedem Schlüssel haben?

Ein Beispiel für Ausgabe ist

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

und ich eine Art und Weise versuchen, die Zählung zu schließen '3' innerhalb

+0

Ihre Frage ist nicht wirklich klar. Willst du die Summe aller Zählungen? Oder jeder einzelne zählt? Möchten Sie diese Zählwerte nur anzeigen oder irgendwo speichern (wie das ursprüngliche Diktat)? –

+0

ich möchte die Zählung als Teil des Wörterbuchschlüssels anzeigen, also Beispiel eine Liste mit 3 'Zeit' Element enthält 3 in einem seiner dict Schlüssel –

Antwort

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

, wenn Sie Ihre Struktur try enthalten sein sollen:

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

Code für python2 für Python 3 Verwenden Sie items() anstelle von iteritems()

+0

Ich bin hier ein wenig verwirrt. Was sollte in meinem Fall der "Schlüssel" sein? –

+0

Haben Sie Ihr zweites Beispiel getestet? es scheint einen Fehler zu verursachen. –

+0

Sie müssen 'for key, value in yourDict:' zu 'for key, value in yourDict.items():' in beiden Fällen (oder 'yourDict.iteritems()' in Python 2) ändern. –

0

können Sie erreichen, was Sie wollen, indem Sie Ihren Schlüssel Wert Neuzuweisung die Länge seines Wertes umfassen:

for key, value in yourDict.items(): # Change to .iteritems() if using Python 2.x 
    yourDict[key] = value + [len(value)] 

Oder Sie dies mit Wörterbuch Verständnis tun könnte:

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 
Verwandte Themen