我有两个列表x
和y
。前者始终长于或等于后者。
x = ["foo","bar","qux","zox"]
y1 = ["zox", "qux","foo"]
我想做的是根据
y1
的顺序对x
进行排序。屈服
["foo","qux","zox"]
我尝试了这个,但是不起作用:
In [10]: [x[1] for x in sorted(zip(x,y))]
Out[10]: ['zox', 'qux']
什么是正确的方法?
最佳答案
您可以使用key
的sorted
参数来使用第一个列表中的index
。
>>> sorted(y1, key=x.index)
['foo', 'qux', 'zox']