关于sort()函数
来源:2-12 列表sort
懒惰的围脖
2023-11-30 21:14:54
老师您好,这道题目涉及到sort()函数的排序,我的理解list2的排序规则是将list1列表中的字符串转换成float浮点数类型之后进行排序,转换不成功的则变为float('inf')
我的问题是为什么答案是b,
1)对于浮点数1要比1.0大么
2)'a'无法转换为数字类型,而是作为float('inf')作为比较,那么是以正无穷去排序为什么会排在中间的位置
请老师解答,谢谢!
1回答
同学,你好!在lambda 表达式中对list1中的每个元素判断是不是数字,若是数字则转化为float 类型,否则转化为无穷大。在转换过程中只有第四个元素.isdigit()值为True,执行了float(x),其它元素都是为false,值都是无穷大。又因sort 排序是从小到大的。所以第四个元素“1”是最小的排在第一个,其它的都是inf ,都是按顺序排列的。所以是['1', '1.0', 'a', '0.1', '-1']
祝学习愉快~
相似问题