无法在数组Python中返回元素索引

时间:2014-03-21 13:32:01

标签: python arrays list python-3.x indexing

我想多次使用array.index(x)函数来查找小列表中的元素索引,并将其放在更大的列表中。例如,我有......

a=1
b=2
c=1
d=2

small_list = [a, b, c]
full_list = [d, c, b, a]

x=small_list.index(c)
y=full_list.index(x)
z=full_list[y]

跑步时,我得到......

x=0
y=0
z=2

但我想得到......

x=2
y=1
z=1

如何更改代码才能执行此操作? 我可以看到,当我运行代码时,它正在查找 c 的值。我该如何阻止这种情况发生?

编辑:我自己对问题的回答如下。

4 个答案:

答案 0 :(得分:1)

您使用的是list,而不是arraylist.index()方法返回指定的第一个值的index。所以,当你要求

small_list.index(c)

您获得了index c,分别是值0和1。

http://docs.python.org/2/tutorial/datastructures.html#more-on-lists

答案 1 :(得分:0)

我看起来它正在返回正确的值!你的清单[a,b,c]是[1,2,1]。所以索引(c)(或索引(1))返回c的第一个实例,即点0。

答案 2 :(得分:0)

啊,我发现了我需要做的事情: 列表不是我想要做的正确的基础,我想我应该使用元组。 那样,如果我定义......

tuple1 = (a, b, c)
tuple2 = (d, c, b, a)

print(tuple1[c]) # =2
print(tuple2[c]) # =1

这就是我想要的。基本上,我希望代码找到变量c的位置,而不是c的的位置。

感谢所有回答者。

答案 3 :(得分:0)

致电small_list.index(c)相当于致电small_list.index(1)。 解释器评估c的值为1。

index()返回指定值的第一次出现位置,位于0位置。

请参阅:http://docs.python.org/2/tutorial/datastructures.html