Я пытаюсь понять функцию карты на Python3. Я написал следующий код:
for ch in map(list,["66","67","68"]): print (ch)
И я получаю следующий вывод:
['6', '6'] ['6', '7'] ['6', '8']
Может кто-нибудь объяснить это подробно?
Карта получает в качестве параметров функцию и итерацию. Таким образом, он будет перебирать итерируемое и запускать функцию для каждого элемента. Это означает, что он будет работать по порядку: list("66"); list("67"); list("68") list () - довольно универсальная функция в Python, она преобразует вашу строку в массив символов, которые создают строку. Это означает, что «66» получит [«6», «6»]. Наконец, ваш первоначальный список станет генератором для вышеупомянутых списков, спасибо ShadowRanger за указание на это.
list("66"); list("67"); list("68")
Кроме того, вы можете проверить официальную документацию для функции карты
map возвращает результат функции преобразования для одного элемента предоставленного ввода, повторяемого каждый раз, когда вы извлекаете из него значение. Таким образом, при первом обращении это дает результат list("66"); поскольку str являются итерациями, состоящими из len 1 str с (отдельные символы строки), list("66") создает list из '6' и '6'. В следующий раз list("67") выдаст ['6', '7'] и т. Д.
map
list("66")
str
len
1
list
'6'
list("67")
['6', '7']