在实际引用中,经常需要将列表中的元素按值排序,而不是按照偏移量排序。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 = ['我','你','他','天']
a.sort()
b.sort()
print(a)
print(b)
返回:['他', '你', '天', '我']
返回:['他', '你', '天', '我']
实验表面,中文是可以被排序的,但其排列方式是通过中文转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执行将序排列。
列表方法会对原列表进行排序,改变列表排序内容;
通用函数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 = ['我','你','他','天']
a.sort()
b.sort()
print(a)
print(b)
返回:['他', '你', '天', '我']
返回:['他', '你', '天', '我']
实验表面,中文是可以被排序的,但其排列方式是通过中文转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执行将序排列。