Python carte de bucate de
discuție
folosind map
cu None
ca thefirst argument este o variație subtilă a standarduluimap
apel, care are de obicei o funcție ca thefirst argument. După cum indică documentația, dacă primul argumenteste None
, funcția de identitate este utilizată cafuncția prin care sunt mapate argumentele. Dacă existămultiple argumente listă, map
returnează o listăconstând din tupluri care conțin elementele corespunzătoare din alllists (cu alte cuvinte, este un fel de transposeoperation). Argumentele lista poate fi orice fel de secvență, șirezultatul este întotdeauna o listă.
rețineți că prima tehnică returneazăNone
forsecvențe în care nu mai există elemente. Prin urmare, ieșireaa primei bucle este:
Map:a1 b1a2 b2a3 None
zip
vă permite să iterați listele într-un mod similar, dar numai până la numărul de elemente din cea mai mică listă. Prin urmare, rezultatul celei de-a doua tehnici este:
Zip:a1 b1a2 b2
Python 2.0 a introdus comprehensiuni de listă, cu o sintaxă pe care unii au găsit-o un pic ciudată:
aceasta iterează peste listăb
pentru fiecare element din a
. Aceste elemente sunt puse într-un tuplu (x,
y)
. Apoi iterăm prin lista rezultatătupluri în bucla exterioară for
. Prin urmare, rezultatul celei de-a treia tehnici este destul de diferit:
List comprehension:a1 b1a1 b2a2 b1a2 b2a3 b1a3 b2
Leave a Reply