繁体   English   中英

使用lambda函数的python排序列表

[英]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'
]

我想根据两个条件对它进行排序:

  1. 按字符串中没有的“ \\”排序。
  2. 通过字母。

我的最终结果应该是这样的:

[
    '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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM