Python 3x中列表sort的用法详解

本文介绍了Python中列表排序的方法,包括sort()方法与sorted()函数的区别,以及如何对不同类型的列表进行排序,如数字列表、字符列表及中文字符列表等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际引用中,经常需要将列表中的元素按值排序,而不是按照偏移量排序。Python为此提供了两个函数:
列表方法会对原列表进行排序,改变列表排序内容;
通用函数sorted()则会返回排好序的列表副本,原列表内容不变。
sort这个函数是不带返回值的。
如果列表中的元素都是数字,它们会默认的排列成从小到大的升序。如果元素都是字符串,则会按照字符表顺序排列。
默认的排序是升序排列的,通过添加参数reverse = True可以改为降序排列。
实验一 整数型与字符(字母)型排序
# usr/bin/python
# _*_ coding:utf-8 _*_
a = [2,3,6,8,2,9]
b = ['d','e','r','i']
a.sort()
b.sort()
print(a)
print(b)
返回:[2, 2, 3, 6, 8, 9]
      ['d', 'e', 'i', 'r']
列表a为整数型列表,b列表为全字符型列表,通过sort(),默认为正序列排列,字符采用英文字母排列,数字按照大小排列;
实验二 字符与整数型混合
# usr/bin/python
# _*_ coding:utf-8 _*_
a = [2,5,1,'e','e']
a.sort()
print(a)
返回值: TypeError: unorderable types: str() < int()
该实验表明,数字与字符混合型列表无法采用sort实现排序。
实验三 中文字符是否可以排序
# usr/bin/python
# _*_ coding:utf-8 _*_
a = ['我','你','他','天']
b = ['&#x6211','&#x4F60','&#x4ED6','&#x5929']
a.sort()
b.sort()
print(a)
print(b)
返回:['他', '你', '天', '我']
返回:['&#x4ED6', '&#x4F60', '&#x5929', '&#x6211']
实验表面,中文是可以被排序的,但其排列方式是通过中文转UTF-8后,通过传递的方式一一对比然后进行排序。
实验四 sorted 建立副本


# usr/bin/python
# _*_ coding:utf-8 _*_
a = ['d','a','c','b']
b = sorted(a) # 通过sorted先建立副本并赋值与b,然后在进行排序,sort是没有返回值的;
c = a[:] # 通过切片的方式,赋值列表a;
c.sort() # 对c进行排序
print(a)
print(b)
print(c)
使用sorted先建立副本,然后进行排序,在此介绍一个小技巧,利用切片,复制a表;
实验五 将序排列
# usr/bin/python
# _*_ coding:utf-8 _*_
a = ['d','a','c','b']
a.sort(reverse=True)
print(a) # 返回['d', 'c', 'b', 'a']
reverse = Ture 为sort的参数,命令sort执行将序排列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值