[英]python sort list using lambda function
我有一个这样的清单:
[
'C:\\Users\\Rash\\Downloads\\Programs\\a.txt',
'C:\\Users\\Rash\\Downloads\\a.txt',
'C:\\Users\\Rash\\a.txt',
'C:\\Users\\ab.txt',
'C:\\Users\\aa.txt'
]
我想根据两个条件对它进行排序:
我的最终结果应该是这样的:
[
'C:\\Users\\aa.txt',
'C:\\Users\\ab.txt',
'C:\\Users\\Rash\\a.txt',
'C:\\Users\\Rash\\Downloads\\a.txt',
'C:\\Users\\Rash\\Downloads\\Programs\\a.txt'
]
我正在学习python中的lambda函数,并编写了以下代码:
print(sorted(mylist, key=lambda x:x.count("\\")))
但是此代码仅按“ \\”计数排序。 它不会按字母排序。 结果是我在键“'C:\\ Users \\ aa.txt'”之前看到键“'C:\\ Users \\ ab.txt”。
我可以对列表进行两次排序,但是我想一行完成。 我应该在lambda代码中添加什么? 由于我不熟悉整个“ lambda”,所以我想不出一种解决方法。 感谢回复!! :)
从键函数返回一个序列,该序列包含要排序的项目。
key=lambda x: (x.count('\\'), x.split('\\'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.