Python Cookbook by
dyskusja
używającmap
zNone
jako 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
Leave a Reply