python - 从 Python 3 中的列表填充 map 的单行方法

标签 python python-3.x

我正在将这段代码从 Python 2.x 移植到 Python 3.x

def funk(arg):
    return "%s" % str(arg)

args = map(funk, [1, 2, 3, 4])
args += [5, 6, 7, 8]

Python 3 的最后一行给出了错误

TypeError: unsupported operand type(s) for +=: 'map' and 'list'

如何用一行代码替换最后一行?

最佳答案

map 的返回值在 Python 3 中发生了变化,它现在返回一个值的迭代器,就像 itertools.imap 在 Python 2 中所做的那样。您需要应用 list 到 map 的输出,现在按照 Christian 的建议获取列表。如果您希望您的代码可以跨 Python 2 和 3 移植,您可以使用 six 包导入 map 版本,它返回一个迭代器:from six。移动导入 map

关于python - 从 Python 3 中的列表填充 map 的单行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45641600/

相关文章:

python - 有人可以根据与另一个列表的比较来解释拆分列表元素吗?

python - 双向二叉搜索树?

layout - 如何在 Kivy 中获取小部件/布局的实际大小?

python - Pygame 在曲面内旋转矩形

python解包for循环

python - Python 中的 Cookie 问题

python-3.x - 使用 scapy 使用 TCP 进行 DNS 请求

python - 将文本中的变量名称替换为该变量的值

Python 窗口打开和关闭

python-3.x - pip 安装速度极慢