artisan09
artisan09
采纳率100%
2021-02-05 16:49 阅读 62

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

10

谢谢哦!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    jslang 天际的海浪 2021-02-05 17:54

    这个有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']
    
    点赞 1 评论 复制链接分享
  • weixin_43162240 Bryce__LY 2021-02-05 16:52
    a=["a","b","c"]
    b=["b","a","c"]
    c=[a.index(x) for x in b]
    print(c)
    点赞 4 评论 复制链接分享
  • songhaixing2 给你骨质唱疏松 2021-02-05 16:58

    可以实现的, 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]
    点赞 1 评论 复制链接分享
  • Return_Li い未亡程序猿! 2021-02-05 16:59
    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)
    点赞 1 评论 复制链接分享
  • songhaixing2 给你骨质唱疏松 2021-02-05 17:01

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

    a = ['a','b','c']
    c=[]
    for i,v in enumerate(a):
        c.append(i)
    print(c)  # [0, 1, 2]
    点赞 1 评论 复制链接分享

相关推荐