我有一个 list
mylist = [['123', 'BOOL', '234'], ['345', 'INT', '456'], ['567', 'DINT', '678']]
我想按1. DINT 2. INT 3. BOOL的顺序对其进行排序

结果:
[['567', 'DINT', '678'], ['345', 'INT', '456'], ['123', 'BOOL', '234']]
我在stackoverflow中看到了其他类似的问题,但是没有类似的问题或对我容易适用。

最佳答案

SORT_ORDER = {"DINT": 0, "INT": 1, "BOOL": 2}

mylist.sort(key=lambda val: SORT_ORDER[val[1]])

我们在这里所做的全部工作是通过为列表中的每个元素而不是整个列表返回一个整数来提供一个新的元素进行排序。我们可以使用内联三元表达式,但这会有点麻烦。

关于python - 使用Python中的自定义顺序对列表进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14208256/

10-11 17:55