此处,H
是整数列表
根据{{1}}循环中的条件,我想在列表中添加/减去数字。
for
我在for i in range(len(H)):
if H[i] > 43:
d.append(int(int(H[i]) - int(33)))
M.append(OVF(H[i]))
#print H
elif (H[i]) < -43:
d.append(H[i] + 33)
M.append(OVF(H[i]))
else:
d.append(H)
收到错误。
请帮忙,我是Python新手。我收到的错误是:
TypeError:int()参数必须是字符串或数字,而不是'list'。
答案 0 :(得分:2)
您自己写道H[i]
是一个列表,错误告诉您int()
不适用于那种输入,所以我猜您在调用int(H[i])
时会出现错误。
您可以使用
>>> int([1., 2., 3.])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
>>> list(int(k) for k in [1., 2., 3.])
[1, 2, 3]
我猜你在上面的例子中期望输出[1, 2, 3]
并调用int([1., 2., 3.])
,因为你说你是Python的新手。我认为你想要的是
d.append([int(h)-33 for h in H[i]])
示例:强>
>>> d = []
>>> d.append([int(h)-33 for h in [1., 2., 3.]])
>>> d
[[-32, -31, -30]]