Seltsames Verhalten von dictdiffer

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Kann mir jemand folgendes erklären?

Code: Alles auswählen

import dictdiffer

a = {"a": 1}
b = {"b": 2}

diffs = []
diffs.append(dictdiffer.diff(a, b))

print(diffs)
print(list(diffs[0]))
print(diffs)
print(list(diffs[0]))

Code: Alles auswählen

[<generator object diff.<locals>._diff_recursive at 0x00000260AB245C40>]
[('add', '', [('b', 2)]), ('remove', '', [('a', 1)])]
[<generator object diff.<locals>._diff_recursive at 0x00000260AB245C40>]
[]
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Das reicht schon zur Reproduktion:

Code: Alles auswählen

import dictdiffer

a = {"a": 1}
b = {"b": 2}

diff = dictdiffer.diff(a, b)

print(list(diff))
print(list(diff))

Code: Alles auswählen

[('add', '', [('b', 2)]), ('remove', '', [('a', 1)])]
[]
Sirius3
User
Beiträge: 18264
Registriert: Sonntag 21. Oktober 2012, 17:20

Was soll erklärt werden?
Ein Generator ist ein Objekt, das Werte liefert und wenn alle Werte einmal geliefert wurden, dann gibt es keine weiteren.
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Ups. Ich hab da irgendwie nicht daran gedacht. Sorry für die offensichtlich dumme frage.
Sirius3
User
Beiträge: 18264
Registriert: Sonntag 21. Oktober 2012, 17:20

Es ist keine dumme Frage, es fehlt aber die Beschreibung, was für Dich seltsam ist. Zufällig habe ich wohl richtig geraten.
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Ich fand es seltsam, dass beim zweiten Abrufen der Wert leer war.
Antworten