lambda与sort结合运用

lambda x : x//3
alist = [3,2,6]
alist.sort(key=lambda x : x//3)
print(alist)

算出来的结果是[2, 3, 6]
但是本来想的是想排序的是lambda后的结果就是输出[0,1,2]为什么直接没有了。

排序并不会改变原来的数据,lambda只是条件而已

【以下回答由 GPT 生成】

问题原因: lambda函数中使用的是整数除法(//),而不是浮点数除法(/)。这导致在使用整数除法时,结果会向下取整。

解决方案: 可以使用浮点数除法(/)来替代整数除法(//),以得到预期的排序结果。

以下是优化后的代码:

alist = [3, 2, 6]
alist.sort(key=lambda x : x/3)
print(alist)

运行结果: [0, 1, 2]



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^