for statement und target_list
Verfasst: Mittwoch 22. Februar 2012, 04:49
Dass das folgende syntaktisch korrekt ist, war mir zwar schon vorher klar, aber ich hatte mir nie darüber Gedanken gemacht und es auch nie verwendet. Als ich dies hier gerade gelesen habe, ist mir aufgefallen, dass man zB. sowas machen kann:Das geht, weil zwischen for und in eine target_list steht, genau wie bei einer Zuweisung. Da bei Zuweisungen sowohl l-values als auch r-values von links nach rechts ausgewertet werden, kann man es noch weiter treiben:Folglich geht auch sowas:Wieder eine neue Methode zur Code Obfuscation...
Code: Alles auswählen
>>> names = ['Hans', 'Klaus', 'Marie']
>>> some_dict = {}
>>> i = 0
>>> for some_dict[i] in names:
... i += 1
...
>>> some_dict
{0: 'Hans', 1: 'Klaus', 2: 'Marie'}
Code: Alles auswählen
>>> n, some_dict[n] = 3, 'Ute'
>>> some_dict
{0: 'Hans', 1: 'Klaus', 2: 'Marie', 3: 'Ute'}
Code: Alles auswählen
>>> names = ['Hans', 'Klaus', 'Marie']
>>> some_dict = {}
>>> for i, some_dict[i] in enumerate(names):
... pass
...
>>> some_dict
{0: 'Hans', 1: 'Klaus', 2: 'Marie'}