reverse() ; sort() ; sorted()
python语言中的列表排序方法有三种:reverse反转、sort正序排序、sorted可以获取排序后的列表。在更高级列表排序中,后两种方法还可以加入条件参数进行排序。
reverse()
将列表中元素反转
1 >>> x = [1,5,2,3,4] 2 >>> x.reverse() 3 >>> x 4 [4, 3, 2, 5, 1]
sort()
此函数对列表元素正向排序
1 >>> a = [5,7,6,3,4,1,2] 2 >>> a.sort() 3 >>> a 4 [1, 2, 3, 4, 5, 6, 7]
有的时候需要一个排序好的列表,而又想保存原有未排序列表
1 >>> a = [5,7,6,3,4,1,2] 2 >>> b = a.sort() 3 >>> print b 4 None
这个时候问题出现了,变量b得到的是一个空值
那么如何得到排序好的列表,同时保留原列表
sorted()可以实现
1 >>> a = [5,7,6,3,4,1,2] 2 >>> b = sorted(a) 3 >>> a 4 [5, 7, 6, 3, 4, 1, 2] 5 >>> b 6 [1, 2, 3, 4, 5, 6, 7]
sorted() 可以用在任何数据类型的序列中,返回的总是一个列表形式:
1 >>> sorted('iplaypython.com') 2 ['.', 'a', 'c', 'h', 'i', 'l', 'm', 'n', 'o', 'o', 'p', 'p', 't', 'y', 'y']
sort()是可变对象独有的,而不可变对象如元组、字符串是不行的,如果调用将会返回一个异常
sorted()并不是可变对象特有的
sorted()函数需要一个参数(参数可以是列表、字典、元组、字符串)无论传递什么参数,都将返回一个以列表为容器的返回值(如果是字典将返回键的列表)
1 >>> mystring="54321" 2 >>> mytuple=(5,4,3,2,1) 3 >>> mylist=[5,4,3,2,1] 4 >>> sorted(mystring) 5 ['1', '2', '3', '4', '5'] 6 >>> sorted(mytuple) 7 [1, 2, 3, 4, 5] 8 >>> sorted(mylist) 9 [1, 2, 3, 4, 5]
reverse()与sort的使用方式相同,reversed()与sorted()的使用方式相同
通过序列的切片也可以达到“逆转”的效果
1 >>> mystring="54321" 2 >>> mytuple=(5,4,3,2,1) 3 >>> mylist=[5,4,3,2,1] 4 >>> mystring[::-1] 5 '12345' 6 >>> mytuple[::-1] 7 (1, 2, 3, 4, 5) 8 >>> mylist[::-1] 9 [1, 2, 3, 4, 5]