我想多次使用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 的值。我该如何阻止这种情况发生?
编辑:我自己对问题的回答如下。答案 0 :(得分:1)
您使用的是list
,而不是array
。 list.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位置。