sorted、sort、reverse使用小结一下(总是用错和用混淆)

按理来说这几个函数再简单不过了,早就应该烂熟于心了。可是,

最近经常用这几个函数,但是总是用混淆,这里再啰嗦总结一下,这弱智的使用。

reverse():

将列表中元素反转排序,比如下面这样
>>> x = [1,5,2,3,4]
>>> x.reverse()
>>> x
[4, 3, 2, 5, 1]

>>>

>>>x = x.reverse()

>>>x

None

x = x.reverse()这样的做法是不对的,因为这样处理的话得到的并不是直接的列表反转值,而是一个None,所以只需直接在原列表进行反转就行。

sort()排序方法:

(1)sorted()方法使用

需要注意以下几点:

(1)sort()对列表内容进行正向排序;

(2)排序后的新列表会覆盖原列表(id不变),也就是sort排序方法是直接修改原列表list排序方法;

(3)使用方法是a.sort(),不需要再a = a.sort(),如果这样处理的话,print a得到的值依然是None。
>>> a = [5,7,6,3,4,1,2]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5, 6, 7]

对sort()方法比较糊涂。有的时候会需要一个排序好的列表,而又想保存原有未排序列表,他们会这么操作:
>>> a = [5,7,6,3,4,1,2]
>>> b = a.sort()
>>> print b
None

>>>

>>>a = a.sort()

>>>print a

None
这个时候问题出现了,变量a和b得到的都是一个空值。所以在使用的过程中一定是a.sort()。不是a = a.sort()或者b=a.sort()。

这只是正向的输出,那么逆向的输出呢?

(2)sort()排序反转

反向输出的时候:

>>>a.sort(reverse = True)

>>>a

[7,6,5,4,3,2,1]

那么想要得到排序好的列表,又想保留原列表怎么办呢?列表sorted()方法可以帮你实现。

sorted()方法

(1)sorted()方法使用

即可以保留原列表,又能得到已经排序好的列表sorted()操作方法如下:
>>> a = [5,7,6,3,4,1,2]
>>> b = sorted(a)
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]

(2)sorted()排序反转

反向输出的时候:

方法1:

>>>b = sorted(a, reverse = True)

>>>b

[7,6,5,4,3,2,1]

或者方法2:

>>>b= sorted(a)

>>>b.reverse()

>>>b

[7,6,5,4,3,2,1]

(3)sorted()处理其他类型数据

sorted()方法可以用在任何数据类型的序列中,返回的总是一个列表形式:
>>> sorted('iplaypython.com')
['.', 'a', 'c', 'h', 'i', 'l', 'm', 'n', 'o', 'o', 'p', 'p', 't', 'y', 'y']

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章