我的文件很少,例如..
l.1,l.3,l.2,l.12,l.36,l.24
当我对列表进行排序时,它给了我...
l.1,l.12,l.2,l.24,l.3,l.36
我怎样才能以这种方式获得它们?...
l.2,l.2,l.3,l.12,l.24,l.36
注意:因为它不允许添加实际文件名,因为它是我作为列表给出的。但实际文件名由“。”连接。像 l.1 l.2
我可以为此编写一个冒泡排序算法。但我想要一个更简单的方法..
谢谢
干得好:
l = ['l.1','l.3','l.2','l.12','l.36','l.24']
sorted(l, key = lambda x: int(x[2:]))
在一行中:
>>> li = ["l.1", "l.3", "l.2", "l.12", "l.36", "l.24"]
>>> sorted(li, key=lambda x: int(x.split(".")[-1]))
['l.1', 'l.2', 'l.3', 'l.12', 'l.24', 'l.36']
如 Python 文档中所述,列表上的排序函数需要多个参数(相关部分here)。
您可以使用key
参数来指定获取密钥的函数。您的案例的实现可能是:
def key_fn(n):
return int(n.split('.')[-1])
然后你可以这样做:
l = ["l.1","l.3","l.2","l.12","l.36","l.24"]
l.sort(key=key_fn)