如何修改For循环中的当前元素?

时间:2019-04-09 00:28:12

标签: python python-3.x

for i in A:
    if i < 0:
        A[i] == abs(i)

如何在for循环中使用当前元素,如果当前元素为负,我想使它为正。

5 个答案:

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