Python 3.x 得到一个;列表索引可以';“不要成为一个浮点数”;在Python3.4中,在if语句中使用来自循环的相同迭代器时出错

Python 3.x 得到一个;列表索引可以';“不要成为一个浮点数”;在Python3.4中,在if语句中使用来自循环的相同迭代器时出错,python-3.x,if-statement,for-loop,Python 3.x,If Statement,For Loop,我尝试使用以下代码遍历列表并检查每个值是否为负数: for i in listy: if (listy[i]<0):... listy中的i的: if(listy[i]i是值而不是索引。 这一行不是您想要的(listy[i]在C和许多其他语言中,在迭代数组时通常使用数组的长度。在Python中也可以这样做,但也可以在不显式使用索引(位置)的情况下迭代元素.你似乎把这两种方法混为一谈,因此得到了意想不到的结果 这将仅遍历以下值: for i in listy: # here

我尝试使用以下代码遍历列表并检查每个值是否为负数:

for i in listy:
    if (listy[i]<0):...
listy中的i的

if(listy[i]
i
是值而不是索引。
这一行不是您想要的
(listy[i]在C和许多其他语言中,在迭代数组时通常使用数组的长度。在Python中也可以这样做,但也可以在不显式使用索引(位置)的情况下迭代元素.你似乎把这两种方法混为一谈,因此得到了意想不到的结果

这将仅遍历以下值:

for i in listy:
    # here, i is the value of the list entry
    print(i)
这将使用列表的长度和索引(位置):

这将为您提供索引和值:

for i, val in enumerate(listy):
    # here, i is the index (position) and val is the value 
    print(i, val)

<代码> > <代码>不是索引,它是值。请检查Python文档/教程,看看<代码> > <代码> > Python。谢谢!我已经用了几个小时来修复这个问题。而且我用“I”作为C和C++中使用的整数。@ DeMIS哈哈,没问题:
for i in range(len(listy)):
    # here, i is the index (position) of the list entry, not the value
    print(listy[i])
for i, val in enumerate(listy):
    # here, i is the index (position) and val is the value 
    print(i, val)