gpt4 book ai didi

python - 为什么此打印会更改以下结果?

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:03 25 4
gpt4 key购买 nike

示例代码:

p = map(some_logic)
print(list(p)) # HERE
p = filter(some_logic, p)
print(list(p))

使用上面的代码,第一行生成的p总是一样的。但是通过添加注释行 HERE,最后的打印输出 []。如果没有 HERE 行,最后的 print 会给出 p 的正确内容。

这是什么原因造成的?

最佳答案

当您使用 map 调用的结果时,它会被消耗掉:

>>> p = map(int, ['1', '2'])
>>> p
<map object at 0x02C878B0>
>>> list(p)
[1, 2]
>>> list(p)
[]

您应该将更改 map 的结果存储到 list 中:

>>> p = list(map(int, ['1', '2']))
>>> p
[1, 2]
>>> p = list(filter(lambda x: x == 1, p))
>>> p
[1]

请注意 filter 也会发生同样的事情,因此我也将其更改分配给 list

关于python - 为什么此打印会更改以下结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47936065/

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