索引值16的list.index(value)的值设置为9

时间:2017-04-20 16:28:13

标签: python list python-3.x

我有一个清单

/

当我尝试使用下面的代码

迭代打印索引和索引相关的值时
array_list=[-37, -36, -19, -99, 29, 20, 3, -7, -64, 84, 36, 62, 26, -76, 55, -24, 84, 49, -65, 41]

我得到以下输出:

for value in array_list:
    print(array_list.index(value), array_list[array_list.index(value)])

在索引16处,它给出了索引值为9。 我不知道为什么它应该给我16作为指数值。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

list.index(..)返回list中第一次出现的元素的值。例如:

>>> my_list = [1,2,3,1,2,5]
>>> [(i, my_list.index(i)) for i in my_list]
[(1, 0), (2, 1), (3, 2), (1, 0), (2, 1), (5, 5)]

# Here, 0th index element is the number
#       1st index element is the first occurrence of number

如果要在迭代期间获取元素的位置,则应使用enumerate进行迭代。例如:

>>> [(i, n) for n, i in enumerate(my_list)]
[(1, 0), (2, 1), (3, 2), (1, 3), (2, 4), (5, 5)]

# Here, 0th index element is the number
#       1st index element is the position in the list

您可以参考Python's List Document,其中包含:

  

<强> list.index(x)的

     

返回值为x的第一个项目列表中的索引。如果没有这样的项目,则会出错。

答案 1 :(得分:0)

您要求它获取具有该值的第一个条目的索引(然后使用该索引)。如果您想要迭代(for循环)找到它的索引,请尝试for i,value in enumerate(array_list)。迭代列表会产生它包含的项目,而不是引用回列表的内容。