前两天有给大家分享到关于python列表的一些小知识。
Python中遍历列表方法知多少python列表的经典案列
在实际开发中,关于对列表的排序我们也会经常遇到。python为我们提供了两种关于对列表的排序方法。一起来看看。
使用列表对象的sort()方法实现
![a9a52efe5b008cfb89e42f6b89e25cf7.gif](https://img-blog.csdnimg.cn/img_convert/a9a52efe5b008cfb89e42f6b89e25cf7.gif)
sort方法语法格式:
listname.sort(key = none,reverse = False)
参数说明:
listname: 表示要排序的列表
key: 表示在指定列表选择一个用于比较的键,如果设置 'key = str.lower' ,则表示在排序的时候不区分大小写。
reverse:可选参数,如果将其指定为True,表示降序排列,如果为False,则表示为升序排列
![2c547cc18e7a0203f5bf7657c4b89460.png](https://img-blog.csdnimg.cn/img_convert/2c547cc18e7a0203f5bf7657c4b89460.png)
例如:
grade = [85,56,95,45,73,81,83,64,92,77]print('原列表',grade)grade.sort()print('升序',grade)grade.sort(reverse=True)print('降序',grade)
执行上述代码结果如下:
原列表 [85, 56, 95, 45, 73, 81, 83, 64, 92, 77]升序 [45, 56, 64, 73, 77, 81, 83, 85, 92, 95]降序 [95, 92, 85, 83, 81, 77, 73, 64, 56, 45]
使用sort()方法排序比较简单,但是使用sort()方法对字符串列表排序的时候,采用的是大写优先原则,就是说先按照大写字母顺序排列,再按照小写字母顺序排列。是否按照大小写顺序排列主要取决于参数key,下面请细看示例。
NBA = ['Bryant','James','curry','durant']print('原列表',NBA)NBA.sort()print('区分大小写',NBA)NBA.sort(key = str.lower)print('不区分大小写',NBA)
执行上述代码结果如下:
原列表 ['Bryant', 'James', 'curry', 'durant']区分大小写 ['Bryant', 'James', 'curry', 'durant']不区分大小写 ['Bryant', 'curry', 'durant', 'James']
说明:
采用sort()方法排序时,对中文支持不友好,排序的结果和我们平时的笔画或者拼音都是不一样的,如果想要实现对中文列表的排序,就需要自己手动写方法来实现。
使用内置函数sorted()函数实现
在python中还带有一个内置的sortd()函数,首先来看看他的语法格式:
sorted(intrable, key = None, revrese = False
参数说明:
intrable: 表示要排序的列表名称
key: 表示在指定列表选择一个用于比较的键,如果设置 'key = str.lower' ,则表示在排序的时候不区分大小写。
revrese:可选参数,如果将其指定为True,表示降序排列,如果为False,则表示为升序排列
例如:
grade = [85,56,95,45,73,81,83,64,92,77]print('原列表',grade)grade.sort()print('升序',grade)grade.sort(reverse=True)print('降序',grade)
执行上述代码结果如下:
原列表 [85, 56, 95, 45, 73, 81, 83, 64, 92, 77]升序 [45, 56, 64, 73, 77, 81, 83, 85, 92, 95]降序 [95, 92, 85, 83, 81, 77, 73, 64, 56, 45]
说明:
列表对象的sort()方法和内置函数sorted()方法基本相同,不同之处就在于
sort方法会在原list上直接进行排序,不会创建新的list。而sorted方法不会对原来的数据做任何改动,排序后的结果是新生成的。
如果我们不需要原来的数据而且数据是list类型,可以用sort方法,能够节省空间。否则要用sorted方法。
总的来说就是sorted方法不会对原来的数据做任何改动,排序后的结果是新生成的。所以sorted会返回一个排序过的列表!
今日推荐
remove、del和 pop 有什么区别?
关于Python切片问题!
Python解释器种类以及特点?
Python对文件的操作,我不允许你还不知道
![50ffcb728192a5e080c11278abb50e84.png](https://img-blog.csdnimg.cn/img_convert/50ffcb728192a5e080c11278abb50e84.png)