【问题标题】:Error in map function "Int is not iterable"映射函数错误“Int 不可迭代”
【发布时间】:2023-01-23 19:34:58
【问题描述】:

我在地图功能中遇到意外错误。(Python)

为什么这是错误的?

x=[1,2]
print(list(map(list,x)))

但是下面的代码运行正确吗?

x=['a','b']
print(list(map(list,x)))

【问题讨论】:

  • 字符串对象是可迭代的作为一个整数对象不是
  • 您可以将此示例简化为 list(1),这会产生相同的错误。你为什么期望它起作用,它应该做什么?

标签: python function dictionary


【解决方案1】:

list 函数要求其参数为 iterable。但是 int 不是可迭代的。

如果你这样做:

list('abcd')

输出:

['A B C D']

这是因为它遍历每个元素然后生成一个list

如果您想为 x=['a','b'] 创建类似的功能,

print(list(map(lambda y: [y], x)))

lambda 创建一个带有参数y 的匿名函数,它是列表x 中的当前项目,并将单个元素放在创建的list 中,而不是对其进行迭代。

【讨论】:

    猜你喜欢
    • 2019-08-15
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2021-03-03
    相关资源
    最近更新 更多