Ich verstehe "Ertrag", aber ich habe verstanden, dass es ein Mechanismus ist, um zu untersuchen, woraus "Ertrag" besteht, und die Bewertung des Generators zu erhalten. Mit diesem Verständnis schrieb ich flach
def flatten(x):
if hasattr(x, '__iter__') and not isinstance(x, str):
for y in x:
yield from flatten(y)
else:
yield x
Wenn Sie diesen "Ertrag" von "Ertrag" ändern, wird der Generator einfach zurückgegeben. Ich frage mich, ob Sie das verstehen.
In : ls = [1,2,3,[4,5],[6,[7,8,[9,10,11],12]]]
In : list(flatten(ls))
Out: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
Ich bin mir nicht sicher, ob ich damit umgehen kann
Recommended Posts