Skip to main content
 首页 » 编程设计

python之从有序列表中排序子列表的最pythonic方式

2025年05月04日9fff_TT

如果我有子列表 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 .