gpt4 book ai didi

Python 类型错误 : can only concatenate list (not "map") to list

转载 作者:行者123 更新时间:2023-12-05 01:06:55 26 4
gpt4 key购买 nike

我的程序中有两行看起来相当简单,但让我有些头疼

在这里

costs = sum([map(int, f.readline().strip().split(' ')) for i in range(8)], [])
awards = sum([map(int, f.readline().strip().split(' ')) for i in range(8)], [])

它给了我错误:TypeError: can only concatenate list (not "map") to list

在我看来,这与 python 2 到 python 3 版本有关,但我无法弄清楚!

我被困了几个小时,找不到解决方案。有什么帮助吗?

最佳答案

你是对的。在 Python 2 中,map 返回一个列表。在 Python 3 中,它返回一个特殊的迭代器,它懒惰地映射到集合上。只需将此可迭代对象显式转换为列表即可。

costs = sum((list(map(int, f.readline().strip().split(' '))) for i in range(8)), [])

还要注意,通过在生成器表达式上使用圆括号而不是方括号,我们可以避免生成中间列表。

sum([... for i in range(8)])

这会在内存中生成一个完整的列表,然后对这些值求和。

sum(... for i in range(8))

这会在范围内迭代并在我们进行时产生一个总和,而不是生成中间列表。

关于Python 类型错误 : can only concatenate list (not "map") to list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68250209/

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