正在回答
2回答
同学你好!
sorted(my_list, key=lambda x:x>0 )的工作原理是:对my_list列表中的每一个元素计算x>0的结果。对于[3, 5, -4, -1, 0, -2, -6]列表,3>0结果返回True,5>0结果返回True,-4>0结果返False,0>0结果返回False...执行完lambda表达式后返回的列表等价于[True,True,False,False,False,False,]
python3由语言本身保证True转化为int型时总是为1,而False总是为0,则列表又等价于
[1,1,0,0,0,0]。可以简单将此列表中的数字看成是变量名,第一个1对应原始列表的3,第二个1对应原始列表的5,以此类推。此时sorted函数将对此列表进行排序。结果为[0,0,0,0,1,1]。
最终的结果是按照[0,0,0,0,1,1]所对应的原始列表中的数返回的,即[-4,-1,0,-2,-6,3,5]。
另外同学你所说的大于0排序是什么意思,是指按绝对值排序吗?如果是的话写成如下形式:
sorted(my_list,key = abs).
如果还有其他问题我们可以再探讨,如果帮到了你望采纳!祝学习愉快
1.Python零基础入门
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星