gpt4 book ai didi

python - 使用 lambda 排序函数按每个元组组合值对字符串元组进行排序

转载 作者:行者123 更新时间:2023-11-28 21:31:36 26 4
gpt4 key购买 nike

我有一个元组列表,其中每个元组(a,b)代表对象a*b的高度:

L = [("3m", "5cm"), ("10m", "77cm"), ("1m", "82cm"), ("1m", "74cm"), ("11m", "50cm")] 

现在,我想使用 lambda 排序函数根据高度对该列表进行排序。输出应该如下所示:

L = [("1m", "74cm"), ("1m", "82cm"), ("3m", "5cm"), ("10m", "77cm"), ("11m", "50cm")]

以下是我尝试过的,但出现错误:

L.sort(key= lambda x: 100 * int(x[0][0:-2]) + int(x[1][0:-3])) 

如何解决?

最佳答案

您的切片索引已关闭;结束索引是独占的,因此您想分别切片到索引 -1-2,使其:

L.sort(key=lambda x: 100 * int(x[0][:-1]) + int(x[1][:-2])) 

我还省略了起始索引(因为无论如何,它对于前向切片默认为零)。另一个解决方案是rstrip,这样您就不会使用魔数(Magic Number)执行显式切片:

L.sort(key=lambda x: 100 * int(x[0].rstrip('m')) + int(x[1].rstrip('cm'))) 

请注意,rstrip 会删除任何提供的字符的运行,因此,如果您的值未以预期的 m 结尾,则可能会出现错误行为cm,但是,魔法切片会更频繁地默默地发生错误,所以这仍然是一个改进。

关于python - 使用 lambda 排序函数按每个元组组合值对字符串元组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57803915/

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