sum
intelligent schreiben!Mir wurde klar, dass ich klug schreiben konnte, wenn ich dachte, dass es nur einen heiklen Weg gibt, dies zu tun.
Das Hinzufügen von Liste zu Liste wird in Python unterstützt
[1,2,3] + [4,5,6] => [1,2,3,4,5,6]
Unter Ausnutzung der Tatsache, dass die Summenfunktion den Anfangswert für das zweite Argument angeben kann,
data = [[1,2,3], [4,5,6], [7,8,9]]
sum(data, [])
Sie können so schreiben.
Es ist jedoch ein wenig unflexibel, dass Taples und Generatoren nur unterstützt werden, wenn es sich um eine Liste handelt.
In der Python3-Serie scheint sum den Typ zu überprüfen, daher kann diese Methode nicht verwendet werden. Es tut mir Leid.
Auf diese Weise habe ich mich gefragt, ob es möglich ist, alle Instanzen, die add implementieren, mit sum zu verarbeiten.
>>> a = [1,2,3]
>>> data = [a, [4,5,6], [7,8,9]]
>>> sum(data,[])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a
[1, 2, 3]
>>> empty = []
>>> sum(data,empty)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> empty
[]
>>>
Intern wird erwartet, dass das Ergebnis der Addition für die Verarbeitung verwendet wird.
Wenn Sie also eine Klasse mit "add" wie unten gezeigt bestehen,
>>> class A:
... def __add__(self, target):
... self.target = target
... return 100
...
>>> a = A()
>>> sum([5,10,15,20],a)
145
>>> a.target
5
... Nun, ich verstehe, dass Sie "add" nicht zu einer destruktiven Implementierung machen sollten.
Recommended Posts