TypeError: Nicht hashbarer Typ

Ich versuche zu bekommen eine Liste von Tupeln : so etwas wie [ [(1,0),(2,0),(3,0)],[(1,1),(2,1),(3,1)....]]
Ich habe diese Aussage

set([(a,b)for a in range(3)]for b in range(3))

Aber es gibt mir eine Fehlermeldung

TypeError: unhashable type: 'list'

Ich habe 2 Fragen für die Python Guru:

a) Wenn ich einen Blick in die Python-definition von Hashable -

"Ein Objekt ist hashable, wenn es einen hash-Wert ändert sich nie während seiner Lebenszeit (es muss ein hash () - Methode)"

wenn ich dir Funktion auf dem Ausdruck oben

dir([(a,b)for a in range(3)]for b in range(3))

scheint es zu sagen, dass die __hash__ ist es. Also, warum bekomme ich die Fehlermeldung?

War ich in der Lage zu bekommen [[(0, 0), (1, 0), (2, 0)], [(0, 1), (1, 1), (2, 1)], [(0, 2), (1, 2), (2, 2)]]
mit dem list-Befehl :

list(list((a,b) for a in range(3)) for bin range(3))

b)Liste aus, und legen beide nimmt Iterierbar als parameter. Wie kommt man arbeitet(Liste) und andere nicht (festgelegt)?

InformationsquelleAutor der Frage pylearner | 2011-07-19

Schreibe einen Kommentar