如何在for循环中添加列表中的数字?

时间:2017-07-28 08:42:38

标签: python list

此处,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'。

1 个答案:

答案 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]]