python - 在python中按字符串中的数值对字符串进行排序
问题描述
对于包含这些字符串的列表,我试图按“_”字符之前的数字对它们进行排序。
my_lst = ['25_mg', '2_mg', '200_mg', '10_mg', '5_mg']
尝试了几种类似的方法: print(test.sort(key = lambda x: x.split('_')[0]))
但是,列表没有按预期排序,如下所示:
my_lst = ['2_mg', '5_mg', '10_mg', '25_mg', '200_mg']
解决方案
您的排序将对字符串“25”、“2”等进行排序,因此以“1”开头的所有内容都将排在第一位。看来您想按它们的实际数值排序,所以将其更改为
my_lst.sort(key = lambda x: int(x.split('_')[0]))
print(my_lst)
这使
['2_mg', '5_mg', '10_mg', '25_mg', '200_mg']
推荐阅读
- java - JAVA R 集成,R 包问题
- c# - 如何显示.net core api返回的值?
- linux - 错误后如何阻止git显示密码
- regex - 何使用正则表达式来做到这一点?
- bash - 按名称中的公共子字符串对文件进行分组
- artifactory - Artifactory 7.12.6:setMeUp 中的“下载片段”按钮返回 jsonMappingException
- regex - 通过 Firebase Firestore 安全规则使用正则表达式测试电子邮件
- amazon-web-services - AWS - 从 lambda 名称获取 API-Gateway apiID
- php - 如何摆脱 json/php 文件中的 bom 错误
- macos - mac 上的 detox 构建失败,nvm 与“PREFIX”环境变量不兼容