关于sort()函数

来源:2-12 列表sort

懒惰的围脖

2023-11-30 21:14:54

https://img1.sycdn.imooc.com/climg/6568896609a078db07410411.jpg

老师您好,这道题目涉及到sort()函数的排序,我的理解list2的排序规则是将list1列表中的字符串转换成float浮点数类型之后进行排序,转换不成功的则变为float('inf')

我的问题是为什么答案是b,

1)对于浮点数1要比1.0大么

2)'a'无法转换为数字类型,而是作为float('inf')作为比较,那么是以正无穷去排序为什么会排在中间的位置

请老师解答,谢谢!

写回答

1回答

好帮手慕小猿

2023-12-01

同学,你好!在lambda 表达式中对list1中的每个元素判断是不是数字,若是数字则转化为float 类型,否则转化为无穷大。在转换过程中只有第四个元素.isdigit()值为True,执行了float(x),其它元素都是为false,值都是无穷大。又因sort 排序是从小到大的。所以第四个元素“1”是最小的排在第一个,其它的都是inf ,都是按顺序排列的。所以是['1', '1.0', 'a', '0.1', '-1']

https://img1.sycdn.imooc.com/climg/65696aa7090cd7ab14960815.jpg

祝学习愉快~

0

0 学习 · 4469 问题

查看课程