gpt4 book ai didi

Python:如何解决TypeError:循环中需要一个整数

转载 作者:太空宇宙 更新时间:2023-11-04 07:10:21 24 4
gpt4 key购买 nike

我有一个列表 Dsr

>>> Dsr
[59.10346189206572, 40.4211078871491, 37.22898098099725]
type(Dsr)
<type 'list'>

我需要计算最大值并将列表中的每个元素除以该值

dmax = numpy.max(Dsr)
RPsr = []
for p in xrange(Dsr):
RPsr.append(float(Dsr[p]/dmax))

我有以下问题:

1) 当我运行这个循环时,我收到了错误信息:

Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
TypeError: an integer is required

2) 是否有可能以最优雅的列表推导式转换循环?

最佳答案

您得到异常是因为 xrange() 采用 int 而不是 list。您需要使用 len():

for p in xrange(len(Dsr)):
^^^

既然你已经在使用 NumPy,我的建议是像这样重写整个东西:

In [7]: Dsr = numpy.array([59.10346189206572, 40.4211078871491, 37.22898098099725])

In [8]: Dsr / Dsr.max()
Out[8]: array([ 1. , 0.68390423, 0.6298951 ])

关于Python:如何解决TypeError:循环中需要一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13919309/

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