TypeError:“ int”对象在地图函数中不可迭代

安东尼奥·埃斯波西托

抱歉,我是新手python编码器。我在PyCharm中编写了以下代码:

lst_3 = [1, 2, 3]

def square(lst):
    lst_1 = list()
    for n in lst:
        lst_1.append(n**2)

    return lst_1


print(list(map(square,lst_3)))

而且我有这种类型的错误:TypeError:'int'对象是不可迭代的。我的代码有什么错误?

cs95

这里的问题是您对map正在做什么的误解这是一个典型的例子。我创建了一个排序的“身份”函数,该函数仅回显一个数字并将其返回。map将此功能列出来,所以您可以看到打印出来的内容:

In [382]: def foo(x):
     ...:     print('In foo: {}'.format(x))
     ...:     return x
     ...: 

In [386]: list(map(foo, [1, 2, 3]))
In foo: 1
In foo: 2
In foo: 3
Out[386]: [1, 2, 3]

请注意,这里的列表中的每个元素foo 依次传递给mapfoo没有收到清单。您的错误以为确实如此,因此您尝试遍历一个导致出现错误数字

square这种情况下,您需要做的定义如下:

In [387]: def square(x):
     ...:     return x ** 2
     ...: 

In [388]: list(map(square, [1, 2, 3]))
Out[388]: [1, 4, 9]

square 应该在收到标量的假设下工作。

或者,您可以使用lambda达到相同的效果:

In [389]: list(map(lambda x: x ** 2, [1, 2, 3]))
Out[389]: [1, 4, 9]

请记住,这是执行此操作的功能编程方式。作为参考,使用列表理解会更便宜:

In [390]: [x ** 2 for x in [1, 2, 3]]
Out[390]: [1, 4, 9]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TypeError:“ int”对象在向导中不可迭代

Lambda函数导致TypeError:'int'对象不可迭代

TypeError:无法在Django视图函数中解压缩不可迭代的int对象

使用列表时,python 中的 Int 对象不可迭代 TypeError

Keras错误:TypeError:“ int”对象不可迭代

TypeError:“ int”对象不可迭代;Python 2.7

Tensorflow-TypeError:'int'对象不可迭代

多重处理:TypeError:“ int”对象不可迭代

TypeError:'int'对象不可迭代-Python

Python-TypeError:“ int”对象不可迭代

TypeError:“ int”对象是否不可迭代?

不断收到TypeError:“ int”对象不可迭代

keras-TypeError:“ int”对象不可迭代

opencv TypeError:'int'对象不可迭代

如何修复TypeError:“ int”对象不可迭代

出现错误“TypeError:'int'对象不可迭代”

pyauto gui TypeError:'int'对象不可迭代

UDF:'TypeError:'int'对象不可迭代'

TypeError对象不可迭代

TypeError:“ UniqueConstraint”对象在Django中不可迭代

TypeError:“ NoneType”对象在Python中不可迭代

TypeError:对象状态中的变量不可迭代

尝试在列表中添加int的Python 3.8“ TypeError:'int'对象不可迭代”

TypeError:“ RegexValidator”对象不可迭代

TypeError:“ ShuffleSplit”对象不可迭代

TypeError:“ KFold”对象不可迭代

TypeError:“节点”对象不可迭代

TypeError:“ WebElement”对象不可迭代

TypeError:“ RelatedManager”对象不可迭代