webentwicklung-frage-antwort-db.com.de

Iterieren über Wörterbuch

Die beiden Setups mit print(i, j) und print(i) liefern das gleiche Ergebnis. Gibt es Fälle, in denen eine .__ über der anderen verwendet werden sollte, oder ist es richtig, sie austauschbar zu verwenden?

desc = {'city': 'Monowi', 'state': 'Nebraska', 'county':'Boyd', 'pop': 1}

for i, j in desc.items():
 print(i, j)

for i in desc.items():
 print(i)

for i, j in desc.items():
 print(i, j)[1]

for i in desc.items():
 print(i)[1]
3
ZrSiO4

Beide unterscheiden sich, wenn Sie Klammern im Druck entfernen, da Sie Python 2X verwenden

desc = {'city': 'Monowi', 'state': 'Nebraska', 'county':'Boyd', 'pop': 1}

for i, j in desc.items():
 print i, j 

for i in desc.items():
 print i

ausgabe

county Boyd
city Monowi
state Nebraska
pop 1
('county', 'Boyd')
('city', 'Monowi')
('state', 'Nebraska')
('pop', 1)
7
Artier

In Python 3 liefern print(i, j) und print(i) nicht dasselbe Ergebnis. 

print(i, j) gibt den Schlüssel i aus, gefolgt von seinem Wert j

print(i) gibt einen Tupel aus, der den Wörterbuchschlüssel gefolgt von seinem Wert enthält

1
A.B.

items() gibt ein View-Objekt zurück, mit dem Sie die (key, value)-Tupel durchlaufen können. Im Grunde können Sie sie einfach so manipulieren, wie Sie es mit Tupeln machen. Das Dokument kann helfen:

iter (dictview) Geben Sie einen Iterator über die Schlüssel, Werte oder Elemente (dargestellt als Tupel> von (Schlüssel, Wert)) im Wörterbuch zurück.

Ich denke auch, dass print(i, j)[1] in Python 3 zu Fehlern führen würde, da print(i, j)None zurückgibt.

0
PJ.Hades