下面是我试图解决的用例:
我有两个列表:(l
和d
)
In [1197]: l
Out[1197]:
[['Cancer A', 'Ecog 9', 'Fill 6'],
['Cancer B', 'Ecog 1', 'Fill 1'],
['Cancer A', 'Ecog 0', 'Fill 0']]
In [1198]: d
Out[1198]: [[100], [200], [500]]
这是一个由两部分组成的问题:
l
进行排序。例如:Cancer
、Ecog
和Fill
(在这种情况下key=(0,1,2)
)。它可以是任何类似Ecog
,Cancer
,Fill
的东西,所以key=(1,0,2)李>l
的排序顺序对d
进行排序李>步骤#1我能够实现,如下所示:
In [1199]: import operator
In [1200]: sorted_l = sorted(l, key=operator.itemgetter(0,1,2))
In [1201]: sorted_l
Out[1200]:
[['Cancer A', 'Ecog 0', 'Fill 0'],
['Cancer A', 'Ecog 9', 'Fill 6'],
['Cancer B', 'Ecog 1', 'Fill 1']]
现在,我想按照与sorted_l
相同的顺序对d
的值进行排序
预期产出:
In [1201]: d
Out[1201]: [[500], [100], [200]]
最好的方法是什么
以下是@juanpa.arrivillaga帮助下的解决方案:
相关问题 更多 >
编程相关推荐