map(function, iterable, ...)
Zastosuj funkcję do każdego elementu iterowalnego i zwróć listę wyników. Jeśli przekazane zostaną dodatkowe iterowalne argumenty, funkcja musi przyjąć tyle argumentów i zostanie zastosowana do elementów ze wszystkich iteracyjnych równolegle.
Jeśli jeden iterowalny jest krótszy od drugiego, zakłada się, że zostanie przedłużony o Brak elementów.
Jeśli funkcja jest None
, to zakłada się funkcję tożsamości; jeśli istnieje wiele argumentów, map()
zwraca listę składającą się z krotek zawierających odpowiednie elementy ze wszystkich iteracji (rodzaj operacji transpozycji).
Argumenty iterowalne mogą być sekwencją lub dowolnym obiektem iterowalnym; wynikiem jest zawsze lista.
Jaką rolę odgrywa to w tworzeniu produktu kartezjańskiego?
content = map(tuple, array)
Jaki efekt ma umieszczenie krotki w dowolnym miejscu? Zauważyłem również, że bez funkcji mapy wyjście jest, abc
a wraz z nim jest a, b, c
.
Chcę w pełni zrozumieć tę funkcję. Definicje referencyjne są również trudne do zrozumienia. Za dużo fantazyjnego puchu.
map(None, a, b, c)
okazuje zip(a, b, c)
. Ale bardzo rzadko widzisz to w praktyce, właśnie dlatego, że zip
połączenie jest równoważne.
tuple
jest funkcją (cóż, jest bardziej dopracowana, ale zachowuje się jak funkcja), która wymaga iteracji i daje krotkę z tymi samymi elementami - więc tuple([1, 2, 3])
jest to równoważne z (1, 2, 3)
. Za map(tuple, array)
, array
byłoby iterable z iterables (myślę listę list), a to daje kopię każdej listy wewnętrzną zamienił krotki.
map
?