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]
【相关推荐】