如果我有子列表 A:['E','C','W'],根据主列表 M 的顺序对子列表进行排序的最 pythonic 方式是什么:['C','B' ,'W','E','K']
我的解决方案似乎相当简陋。我很好奇是否有更“pythonic”的方式来获得相同的结果。
ORDER = ['C','B','W','E','K']
possibilities = ['E','C', 'W']
possibilities_in_order = []
for x in ORDER:
if x in possibilities: possibilities_in_order.append(x)
请您参考如下方法:
>>> order = ['C','B','W','E','K']
>>> possibilities = ['E','C','W']
>>> possibilities_in_order = sorted(possibilities, key=order.index)
>>> possibilities_in_order
['C', 'W', 'E']
这是如何工作的:对于 possibilities 中的每个 element,调用 order.index(element),列表简单地排序这些各自的位置。
更多详情:Built-in Functions → sorted .
