python如何把一个列表的索引,换成另外一个列表的对应元素呢?

谢谢哦!

这个有4种情况,看看你要哪一种

# 获取列表a的元素在列表b中的索引
a=["a","b","c"]
b=["b","c","a"]
c=[b.index(x)+1 for x in a]
print(c)  # [3, 1, 2]

# 获取列表b的元素在列表a中的索引
a=["a","b","c"]
b=["b","c","a"]
c=[a.index(x)+1 for x in b]
print(c)  # [2, 3, 1]

# 用列表c中的值为索引获取列表a的元素进行重新排列
a=["a","b","c"]
c=[3, 1, 2]
b=[a[x-1] for x in c]
print(b) # ['c', 'a', 'b']

# 把列表a的元素移动到列表c中的值为索引的位置
a=["a","b","c"]
c=[3, 1, 2]
b=[None] * len(a)
for v,i in zip(a,c):
    b[i-1] = v
print(b) # ['b', 'c', 'a']

 

a=["a","b","c"]
b=["b","a","c"]
c=[a.index(x) for x in b]
print(c)

 

可以实现的, Python中的列表是中括号的形式 "[ ]", 小括号在Python中是元组(不可变列表)

Python中的索引是从"0"开始的, 可以使用 len( ) 函数的到列表的长度再 for 循环取出来(相当于索引)

a = ['a','b','c']
c=[]
for i in range(len(a)):
    c.append(i)
print(c)  # [0, 1, 2]

 

a = ['a','b','c']
b = ['c','a','b']

for index,i in enumerate(a):
    for var in b:
        if var == i:
            b[b.index(var)] = index
print(b)

或者使用 enumerate( ) 函数, 该函数可以取两个值 : 元素索引、元素值, 这种方法就比较直接

a = ['a','b','c']
c=[]
for i,v in enumerate(a):
    c.append(i)
print(c)  # [0, 1, 2]