Python Can';t返回数组中的元素索引
我想多次使用array.index(x)函数来查找小列表中的元素索引及其在较大列表中的位置。例如,我有Python Can';t返回数组中的元素索引,python,arrays,list,python-3.x,indexing,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 如何更改代码以执行此操作? 我可以看到,当我运行代码时,它正在查找
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的值。我如何阻止这种情况发生
编辑:我自己的问题答案如下。看起来它返回了正确的值!您的列表[a,b,c]是[1,2,1]。因此索引(c)(或索引(1))返回c的第一个实例,即spot 0。您使用的是
列表,而不是数组。list.index()
方法返回指定的第一个值的index
。所以,当你要求
small_list.index(c)
您将得到c
的索引,分别是值0和1
啊,我找到了我需要做的事情:
列表不是我想要做的事情的正确基础,我认为我应该使用元组。
那样的话,如果我定义
tuple1 = (a, b, c)
tuple2 = (d, c, b, a)
print(tuple1[c]) # =2
print(tuple2[c]) # =1
这就是我想要的。本质上,我希望代码找到变量c的位置,而不是c值的位置
感谢所有回答者。调用小列表。索引(c)
相当于调用小列表。索引(1)
。
解释器计算c
的值,该值为1
index()
返回指定值的第一次出现的位置,即位置0
请参阅:“跑步时,我会……”你会这样做吗?我获取值错误:0不在列表中
。这是您的实际代码吗?我不确定您的示例输入是如何导致示例输出的。当然,您的小列表中的第一个索引1不是2。