Я не могу понять, как работает функция карты Python3 для списка? - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь понять функцию карты на Python3. Я написал следующий код:

for ch in map(list,["66","67","68"]):
  print (ch)

И я получаю следующий вывод:

['6', '6']
['6', '7']
['6', '8']

Может кто-нибудь объяснить это подробно?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Карта получает в качестве параметров функцию и итерацию. Таким образом, он будет перебирать итерируемое и запускать функцию для каждого элемента. Это означает, что он будет работать по порядку: list("66"); list("67"); list("68") list () - довольно универсальная функция в Python, она преобразует вашу строку в массив символов, которые создают строку. Это означает, что «66» получит [«6», «6»]. Наконец, ваш первоначальный список станет генератором для вышеупомянутых списков, спасибо ShadowRanger за указание на это.

Кроме того, вы можете проверить официальную документацию для функции карты

0 голосов
/ 03 сентября 2018

map возвращает результат функции преобразования для одного элемента предоставленного ввода, повторяемого каждый раз, когда вы извлекаете из него значение. Таким образом, при первом обращении это дает результат list("66"); поскольку str являются итерациями, состоящими из len 1 str с (отдельные символы строки), list("66") создает list из '6' и '6'. В следующий раз list("67") выдаст ['6', '7'] и т. Д.

...