Python 按字符串和数字排序

问题描述 投票:0回答:1

使用此代码:

for mod_name in sorted(module_dict.keys()):
    print(mod_name)

我得到这个输出:

> Here are the available modules:
> Module 1
> Module 10
> Module 2
> Module 3
> Module 4
> Module 5
> Module 6
> Module 7
> Module 8
> Module 9

这没什么大不了的,但就是很烦人。我可以去掉整数并重建列表,但这似乎太过分了。我觉得我应该能够指定一个要排序的键,该键将适用于以数字结尾的字符串。

我尝试了 key=int 但它抛出了一个错误。

python sorting
1个回答
0
投票

您可以使用

key
来拆分字符串,解析整数,然后将每个 mod_name` 作为元组进行排序:

key=lambda mod_name: int(mod_name.split()[1])

如果您发现它不可读,您也可以将其移至完整的

def
定义的函数中。

© www.soinside.com 2019 - 2024. All rights reserved.