gpt4 book ai didi

python map函数迭代

转载 作者:太空狗 更新时间:2023-10-29 22:08:07 26 4
gpt4 key购买 nike

results 是一个嵌套列表,看起来像这样:

>>> results
[[1, 2, 3, 'a', 'b'], [1, 2, 3, 'c', 'd'], [4, 5, 6, 'a', 'b'], [4, 5, 6, 'c', 'd']]

pr 是一个函数,定义如下:

>>> def pr(line):
... print line

对结果的正常迭代确实是这样的:

>>> for result in results:
... pr(result)
...
[1, 2, 3, 'a', 'b']
[1, 2, 3, 'c', 'd']
[4, 5, 6, 'a', 'b']
[4, 5, 6, 'c', 'd']

但是使用 map 的隐式迭代会导致这种行为:

>>> map(pr, results)
[1, 2, 3, 'a', 'b']
[1, 2, 3, 'c', 'd']
[4, 5, 6, 'a', 'b']
[4, 5, 6, 'c', 'd']
[None, None, None, None]

我的问题:为什么 map 函数会产生额外的迭代?

最佳答案

map 将一个函数应用于可迭代对象的每个元素,并将其结果存储回列表(或 Python 3 中的 map 对象)。所以 [None, None, None, None] 部分是 map 函数的返回值。执行脚本时你不会看到它,但你也可以在 IDLE 中通过将它分配给一个值来摆脱它:

>>> _ = map(pr, results)

但请注意,结果列表的构造(至少在 Python 2 中)有一些影响,因此如果您不需要结果,最好不要在中使用 map这种情况。

关于python map函数迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16750493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com