2016-04-03 5 views
0

Es gibt eine Liste namens eine mit zwei Dimensionen. a[0] ist ein Tupel von 1000 Bildern, und a[1] ist das Tupel ihrer Etiketten. Ich versuche, den folgenden Code auszuführen:Teilen Sie eine Liste von zwei Tupeln basierend auf den Elementen in der zweiten Dimension

from collections import defaultdict 
images = defaultdict(list) 
for image, label in a: 
    images[label].append(image) 

for k,v in images.iteritems(): 
    print('Label {} has {} images'.format(k, len(v))) 

Aber ich erhalte den folgenden Fehler:

for image, label in a: 

ValueError: too many values to unpack 
+3

Sie können 'zip' verwenden:' für Bild, Label in zip (* a): ... ' – falsetru

Antwort

4

Versuchen Sie, die erste Schleife:

for image, label in zip(*a): 

Dies wird kombiniert entsprechende Paare von a[0] und a[1], so dass Sie sie durchlaufen können.

+0

Vielen Dank. Es funktioniert ohne Fehler, aber nach der Verwendung von zip Befehl, zeigt es das Ergebnis, und geht dann in den Ruhezustand und arbeitet sehr langsam. Ich muss Spyder verlassen und wieder laufen. –

+0

Gibt es nach der zweiten Schleife mehr Code? Es ist möglicherweise nicht in dem Code, den Sie gepostet haben. –

+0

Nein, normalerweise habe ich dieses Problem, wenn ich zip-Befehl verwende. –

Verwandte Themen