首页 > 解决方案 > 根据元素内的值对列表进行排序

问题描述

我有一个包含元素的列表:

['16:11:40.894 0,Type=IsXover,Count=1,lp-isD=2'
 '16:11:40.894 0,Type=IsXover,Count=54,lp-xsD=1'
 '16:11:40.894 0,Type=IsXover,Count=201,lr-isD=3'
 '16:11:40.894 0,Type=IsXover,Count=3075,lp-gsD=5']

我想根据 'Count=' 之后的数字对这个列表进行排序。我不能像这里所说的那样使用 .sort(key=lambda x: x[37]) 来做到这一点 ,因为我的数字变成了两倍,三倍,...数字。如何在不使用正则表达式的情况下对该列表进行排序?

(请不要列表很长,我写了上面列表的摘要版本)

标签: pythonlistsorting

解决方案


这样做:

to_sort = ['16:11:40.894 0,Type=IsXover,Count=201,lr-isD=3',
           '16:11:40.894 0,Type=IsXover,Count=54,lp-xsD=1',
           '16:11:40.894 0,Type=IsXover,Count=1,lp-isD=2',
           '16:11:40.894 0,Type=IsXover,Count=3075,lp-gsD=5']
def key(x:str):
    return int(x.partition("Count=")[2].partition(",")[0])

print(sorted(to_sort, key=key))

推荐阅读