gpt4 book ai didi

python - 按数值对字典(文本键)进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 10:14:50 25 4
gpt4 key购买 nike

我需要按数字 val 对字典进行排序,如下例所示:

123ABC Example 1

514WE Example2

192DF Example 3

I found this所以:

sorted(mydict.keys(), key=lambda a:map(int,a.split('.')))

但这在“.”上 split 了我没有那个选择 - 关于我将如何实现这一目标有什么想法吗?

排序看起来像这样:

123ABC Example 1

192DF Example 3

514WE Example2

最佳答案

如果 key 的格式始终为 NNNNWWWWW,其中 NNNN 是数字,WWW 是字母,并且您想根据以下条件对项目进行排序NNNNN 前缀的数值,你可以使用:

import string

sorted(mydict, key=lambda x: int(x.lower().rstrip(string.ascii_lowercase)))

想法是简单地删除包含字母的字符串的右侧部分,然后将剩余的 NNNN 部分转换为数字。

或者你必须使用像这样的正则表达式:

import re
num_regex = re.compile(r'\d+')

sorted(mydict, key=lambda x: int(num_regex.match(x).group(0)))

这应该更健壮。它会将 123A12 排序为与 123A 相同,而第一个解决方案会产生 ValueError

关于python - 按数值对字典(文本键)进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com