python比较大小pta_Python如何实现对列表的排序

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-1 23:23   15   0
前两天有给大家分享到关于python列表的一些小知识。 Python中遍历列表方法知多少python列表的经典案列 在实际开发中,关于对列表的排序我们也会经常遇到。python为我们提供了两种关于对列表的排序方法。一起来看看。

使用列表对象的sort()方法实现

f53ef71188b889e9f5b6db3a0620fc97.gif sort方法语法格式:
listname.sort(key = none,reverse = False)
参数说明: dc8aff045c8849b4aea204010584ce5f.png

listname: 表示要排序的列表

key: 表示在指定列表选择一个用于比较的键,如果设置 'key = str.lower' ,则表示在排序的时候不区分大小写。

reverse:可选参数,如果将其指定为True,表示降序排列,如果为False,则表示为升序排列

a45cbf7bee9e8f36c9cfb36a1c9cf271.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]
4657c4d132ce606395d9c2130ded620a.gif

使用sort()方法排序比较简单,但是使用sort()方法对字符串列表排序的时候,采用的是大写优先原则,就是说先按照大写字母顺序排列,再按照小写字母顺序排列。是否按照大小写顺序排列主要取决于参数key,下面请细看示例。

06e26cb975e7018ac8d4a938bf370955.png
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']
说明: a71530d21828d1f754c43ce55c6879b2.png

采用sort()方法排序时,对中文支持不友好,排序的结果和我们平时的笔画或者拼音都是不一样的,如果想要实现对中文列表的排序,就需要自己手动写方法来实现。

f11d682b7f0d5f4d8a532cc48391d552.png

使用内置函数sorted()函数实现

f53ef71188b889e9f5b6db3a0620fc97.gif

在python中还带有一个内置的sortd()函数,首先来看看他的语法格式:

sorted(intrable, key = None, revrese = False
参数说明: 0814741fc65fdba328a10fa3f9c22021.png

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方法。

1236a30ef1c9865bd47a6ee489247bff.png

总的来说就是sorted方法不会对原来的数据做任何改动,排序后的结果是新生成的。所以sorted会返回一个排序过的列表!

今日推荐 ac636ea857911eec00270ad8e50adfc7.png

remove、del和 pop 有什么区别?

809b84e0d458b8d52696ad5dfd659fac.png

关于Python切片问题!

dfce955cd90834816ccb5465bd43de64.png

Python解释器种类以及特点?

1c3705e0b5e4262e6e4ee5d30915be3d.png

Python对文件的操作,我不允许你还不知道

54623a828f3723d0296c04cb1524760a.png

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP