Lambda或itemgetter不负责对lis的righ部分进行排序

2024-03-28 20:13:49 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
1条回答
网友
1楼 · 发布于 2024-03-28 20:13:49

您可以使用正则表达式提取数字并将其包装在lambda中,然后将其转换为整数。那么你的排序将适用于任何长度的值。你知道吗

>>> mylist = """pommes : 30
... bananes : 20
... oranges : 13
... citrons : 5
... kiwis: 90""".split('\n')
>>> 
>>> import re
>>> mylist.sort(key=lambda val: int(re.search(r':\s*(\d+)', val).group(1)), reverse=True)
>>> mylist
['kiwis: 90', 'pommes : 30', 'bananes : 20', 'oranges : 13', 'citrons : 5']

相关问题 更多 >