为了账号安全,请及时绑定邮箱和手机立即绑定

按数字对字符串进行排序

按数字对字符串进行排序

qq_花开花谢_0 2021-03-15 21:13:35
我想知道如何按内部数字对字符串进行排序。例如,我有:hello = " hola %d" % (number_from_database)bye = "adios %d" % (number_from_database_again)我想按数字对它们进行排序,即使它发生了变化。
查看完整描述

3 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

您可以传递密钥进行排序:


sorted(l, key=lambda x: int(re.sub('\D', '', x)))

例如:


In [1]: import re


In [2]: l = ['asdas2', 'asdas1', 'asds3ssd']


In [3]: sorted(l, key=lambda x: int(re.sub('\D', '', x)))

Out[3]: ['asdas1', 'asdas2', 'asds3ssd']

除了数字以外,哪里re.sub('\D', '', x)代替了所有东西。


查看完整回答
反对 回复 2021-03-30
?
千巷猫影

TA贡献1829条经验 获得超7个赞

只是对Andy的回答的一点补充。

如果要排序集还包含没有任何数字的字符串,请执行以下操作:

sorted(l, key=lambda x: int('0'+re.sub('\D', '', x)))

,这会将这些字符串放在开头,但不包含任何数字。


查看完整回答
反对 回复 2021-03-30
?
Qyouu

TA贡献1786条经验 获得超11个赞

salutations = [hello, bye]

salutations.sort(key=lambda x: int(filter(lambda s: s.isdigit(), x.split())[0]))


查看完整回答
反对 回复 2021-03-30
  • 3 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号