Seite 1 von 1

Seltsames Verhalten von dictdiffer

Verfasst: Samstag 12. August 2023, 13:13
von Fire Spike
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>]
[]

Re: Seltsames Verhalten von dictdiffer

Verfasst: Samstag 12. August 2023, 13:17
von Fire Spike
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)])]
[]

Re: Seltsames Verhalten von dictdiffer

Verfasst: Samstag 12. August 2023, 13:18
von Sirius3
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.

Re: Seltsames Verhalten von dictdiffer

Verfasst: Samstag 12. August 2023, 13:21
von Fire Spike
Ups. Ich hab da irgendwie nicht daran gedacht. Sorry für die offensichtlich dumme frage.

Re: Seltsames Verhalten von dictdiffer

Verfasst: Samstag 12. August 2023, 15:54
von Sirius3
Es ist keine dumme Frage, es fehlt aber die Beschreibung, was für Dich seltsam ist. Zufällig habe ich wohl richtig geraten.

Re: Seltsames Verhalten von dictdiffer

Verfasst: Samstag 12. August 2023, 22:13
von Fire Spike
Ich fand es seltsam, dass beim zweiten Abrufen der Wert leer war.