我无法理解列表的 Python3 地图函数是如何工作的?
I'm not able to understand how Python3 map function for list is working?
我正在尝试了解 Python3 上的地图功能。我写了下面的代码:
for ch in map(list,["66","67","68"]):
print (ch)
我得到以下输出:
['6', '6']
['6', '7']
['6', '8']
谁能详细解释一下?
每次从中提取值时,map
都会在提供的可迭代输入的单个元素上生成转换函数的结果。所以在第一次拉动时,它产生了 list("66")
的结果;由于 str
是由 len
1
str
s(字符串的各个字符)组成的迭代器,list("66")
产生 list
的 '6'
和 '6'
。下一次,list("67")
产生 ['6', '7']
,依此类推。
Map 接收一个函数和一个可迭代对象作为参数。因此,它将遍历 iterable 和 运行 每个元素的函数。这意味着它将 运行 按顺序排列:list("66"); list("67"); list("68")
list() 是 Python 中一个非常通用的函数,它将您的字符串转换为创建字符串的字符数组。这意味着“66”将得到 [“6”,“6”]。最后,您的初始列表将成为上述列表的生成器,感谢 ShadowRanger 指出这一点。
此外,您可以检查 official documentation 地图功能
我正在尝试了解 Python3 上的地图功能。我写了下面的代码:
for ch in map(list,["66","67","68"]):
print (ch)
我得到以下输出:
['6', '6']
['6', '7']
['6', '8']
谁能详细解释一下?
map
都会在提供的可迭代输入的单个元素上生成转换函数的结果。所以在第一次拉动时,它产生了 list("66")
的结果;由于 str
是由 len
1
str
s(字符串的各个字符)组成的迭代器,list("66")
产生 list
的 '6'
和 '6'
。下一次,list("67")
产生 ['6', '7']
,依此类推。
Map 接收一个函数和一个可迭代对象作为参数。因此,它将遍历 iterable 和 运行 每个元素的函数。这意味着它将 运行 按顺序排列:list("66"); list("67"); list("68")
list() 是 Python 中一个非常通用的函数,它将您的字符串转换为创建字符串的字符数组。这意味着“66”将得到 [“6”,“6”]。最后,您的初始列表将成为上述列表的生成器,感谢 ShadowRanger 指出这一点。
此外,您可以检查 official documentation 地图功能