Je comprends «yield», mais j'en suis venu à comprendre que c'est un mécanisme pour enquêter sur ce «rendement» et recevoir l'évaluation du générateur. J'ai écrit à plat avec cette compréhension
def flatten(x):
if hasattr(x, '__iter__') and not isinstance(x, str):
for y in x:
yield from flatten(y)
else:
yield x
Si ce yield from
est changé en yield
, le générateur sera simplement retourné, donc je me demande s'ils se comprennent.
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]
Je ne sais pas si je peux gérer ça
Recommended Posts