在Python中排序元组列表

0 python sorting natural-sort

我有以下已排序的元组列表,在python中使用"sorted":

L = [("1","blaabal"),
     ("1.2","bbalab"),
     ("10","ejej"),
     ("11.1","aaua"),
     ("12.1","ehjej"),
     ("12.2 (c)", "ekeke"), 
     ("12.2 (d)", "qwerty"), 
     ("2.1","baala"),
     ("3","yuio"),
     ("4","poku"),
     ("5.2","qsdfg")]
Run Code Online (Sandbox Code Playgroud)

我的问题是你可以注意到,起初它很好,虽然在"12.2(d)"之后列表重启"2.1",我不知道如何解决这个问题.

谢谢

sko*_*kin 5

有一个专门为您的案例制作的包裹natsort:

>>> from natsort import natsorted
>>> L = [('1', 'blaabal'), ('4', 'poku'), ('12.2 (c)', 'ekeke'), ('12.1', 'ehjej')]
>>> natsorted(L)
[('1', 'blaabal'), ('4', 'poku'), ('12.1', 'ehjej'), ('12.2 (c)', 'ekeke')]
Run Code Online (Sandbox Code Playgroud)