Articles

Python Cookbook by

dyskusja

używającmapzNonejako pierwszy argument jest subtelną odmianą standardumap wywołanie, które zazwyczaj przyjmuje funkcję jako pierwszy argument. Jak wskazuje dokumentacja, jeśli pierwszy argumentis None, funkcja tożsamościowa jest używana jako funkcja, za pomocą której odwzorowywane są argumenty. Jeśli istnieje wiele argumentów listy, map zwraca listę zawierającą krotki, które zawierają odpowiednie pozycje z wszystkich list (innymi słowy, jest to rodzaj transposeoperacji). Argumenty listy mogą być dowolnymi sekwencjami, a theresult jest zawsze listą.

zauważ, że pierwsza technika zwraca None dla sekwencji, w których nie ma więcej elementów. Dlatego wyjście pierwszej pętli jest:

Map:a1 b1a2 b2a3 None

zip pozwala na iterację nad listami w podobny sposób, ale tylko do liczby elementów najmniejszej listy. W związku z tym, wyjście z drugiej techniki jest następujące:

Zip:a1 b1a2 b2

Python 2.0 wprowadził składnię listy, która okazała się nieco dziwna:


ta iteracja nad listąb dla każdego elementu w a. Te elementy są umieszczane w krotce (x,y). Następnie iterujemy przez wynikową listę wartości w zewnętrznej pętlifor. Wyjście trzeciej techniki jest więc zupełnie inne:

List comprehension:a1 b1a1 b2a2 b1a2 b2a3 b1a3 b2