for i in A:
if i < 0:
A[i] == abs(i)
如何在for循环中使用当前元素,如果当前元素为负,我想使它为正。
答案 0 :(得分:1)
i
是列表中每个项目的值。按照惯例,i
引用索引,这导致您编写A[i]
引用当前元素。但是A[i]
不是您想要的,甚至可能是一个错误,具体取决于A
中的值。
您需要索引来更改列表中的值。获取索引的一种方法是使用enumerate()
:
for index, value in enumerate(A):
if value < 0:
A[index] = abs(value)
请注意使用有意义的变量名,以免引起混淆。
答案 1 :(得分:0)
当您说for i in A
时,则每次迭代i
将是A中的一个元素,而不是一个中间索引。您想要做的是这样的:
for i, element in enumerate(A):
if element < 0:
A[i] = abs(element)
答案 2 :(得分:0)
您可以使用enumerate()
遍历列表的元素和索引。如果您只是正常地遍历列表,则i
是列表元素,而不是索引,因此使用A[i]
没有任何意义。
for i, el in enumerate(A):
if el < 0:
A[i] = abs(el)
答案 3 :(得分:0)
我喜欢python3标准库的枚举功能来实现您的目标。例如,如果您具有以下条件:
A = [4, 2, -3, 5, -2]
您可以说:
for index, value in A:
if value < 0:
A[index] = abs(value)
答案 4 :(得分:0)
这也可以通过列表理解来完成:
A = [abs(x) if x < 0 else x for x in A ]