gpt4 book ai didi

python - 如何按前缀字母顺序和后缀数字顺序对 Python 字符串进行排序?

转载 作者:行者123 更新时间:2023-12-05 01:03:24 25 4
gpt4 key购买 nike

我需要对字符串列表进行排序,格式为:

["ccc_3.23", "b_0.00", "b_-1.10", "aa_-2.37", "aa_3.05", "aa_-2.11", "ccc_9.8"]

先按前缀,后按后缀,这样排序后的列表是:

["aa_-2.37", "aa_-2.11", "aa_3.05", "b_-1.17", "b_0.00", "ccc_3.23", "ccc_9.8"]

前缀只包含标准英文字母,可以是任意长度。另一方面,后缀始终是带符号的 float ,可能具有不同的位数。 -1.3232、0.0 和 7.98 都是有效的后缀。

列表需要在不改变其任何元素的情况下进行排序。我在网上尝试了许多不同的方法,但似乎没有一个能涵盖这里的所有边缘情况。不幸的是,列表是按原样格式化的,我对此无能为力。

我有什么办法可以做到这一点吗?

最佳答案

你需要在排序中使用key

a = ["ccc_3.23", "b_0.00", "b_-1.10", "aa_-2.37", "aa_3.05", "aa_-2.11", "ccc_9.8"]
a.sort(key=lambda x: (x.split("_")[0], float(x.split("_")[1])))
a
# output : ['aa_-2.37', 'aa_-2.11', 'aa_3.05', 'b_-1.10', 'b_0.00', 'ccc_3.23', 'ccc_9.8']

关于python - 如何按前缀字母顺序和后缀数字顺序对 Python 字符串进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74284758/

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