Python 如果列表1的值是列表2的索引,如何根据列表2的值对列表1进行排序
假设有一个存储索引值v的列表a[i],v是另一个列表b[v]的索引值。我想根据列表b的值对列表a进行排序。 例如 a=[0,2,3,1]b=[7,10,8,6]Python 如果列表1的值是列表2的索引,如何根据列表2的值对列表1进行排序,python,sorting,Python,Sorting,假设有一个存储索引值v的列表a[i],v是另一个列表b[v]的索引值。我想根据列表b的值对列表a进行排序。 例如 a=[0,2,3,1]b=[7,10,8,6] 我想让列表a变成a=[1,2,0,3],有什么简单的方法对列表a进行排序吗?简单的解决方案是先对列表b进行排序,然后在排序后获取列表b的索引,最后按照对b列表进行排序后获取的b索引的顺序获取列表的值。您可以使用键转换a中的项。该键是a的每个元素的函数 [x for _,x in sorted(zip(b,a))] 试试这个: a=so
我想让列表a变成a=[1,2,0,3],有什么简单的方法对列表a进行排序吗?简单的解决方案是先对列表b进行排序,然后在排序后获取列表b的索引,最后按照对b列表进行排序后获取的b索引的顺序获取列表的值。您可以使用键转换a中的项。该键是a的每个元素的函数
[x for _,x in sorted(zip(b,a))]
试试这个:
a=sorted(a,key=lambda i:b[i])
请注意,如果a
中的任何值超出b
的范围,这将失败并引发索引器:列表索引超出范围
但是,根据您的描述,您希望列表按相反顺序排序,因此:
a=sorted(a,key=lambda i:b[i],reverse=True)
您希望a
成为[1,0,3,2]
?