Skip to main content
 首页 » 编程设计

python之重新排序列表以匹配另一个

2025年05月04日13youxin

假设我有一个像这样的数组:

[[1356, a], [478, b], [60, c], [61, d]] 

是否可以重新排序以匹配数组:

[d, b, a, c] 

喜欢:

[[61,d], [478,b], [1356,a], [60,c]] 

我想要的订单在 csv 文件的第二列中。所以我有:

with open('data.csv', "r") as csvfile: 
     order = csv.reader(csvfile, delimiter = ',') 
     code_order=[] 
     for row in order: 
        code_order.append(row[2]) 
     reordered_output=[] 
     for i,x  in enumerate(code_order): 
          where x[i] in result 
               reordered_ouput[i] = result 
     print(reordered_output) 

请您参考如下方法:

其中一种方法可以使用 sorted使用键

>>> a = [[1356, 'a'], [478, 'b'], [60, 'c'], [61, 'd']] 
>>> b = ['d', 'b', 'a', 'c'] 
>>> sorted(a, key = lambda x : b.index(x[1])) 
[[61, 'd'], [478, 'b'], [1356, 'a'], [60, 'c']]