溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中sort、sorted、reverse和reversed函數(shù)有什么區(qū)別

發(fā)布時間:2020-07-28 09:46:57 來源:億速云 閱讀:322 作者:小豬 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了python中sort、sorted、reverse和reversed函數(shù)有什么區(qū)別,內(nèi)容簡而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

sort()是可變對象(字典、列表)的方法,無參數(shù),無返回值,sort()會改變可變對象,因此無需返回值。

sort()方法是可變對象獨(dú)有的方法或者屬性,而作為不可變對象如元組、字符串是不具有這些方法的,如果調(diào)用將會返回一個異常。

代碼如下:

>>> a=[5,4,3,2,1]
>>> a.sort()
>>> [1, 2, 3, 4, 5]
>>> a
>>> [1, 2, 3, 4, 5]

sorted()是python的內(nèi)置函數(shù),并不是可變對象(列表、字典)的特有方法,sorted()函數(shù)需要一個參數(shù)(參數(shù)可以是列表、字典、元組、字符串),無論傳遞什么參數(shù),都將返回一個以列表為容器的返回值,如果是字典將返回鍵的列表。

代碼如下:

>>> mystring="54321"
>>> mytuple=(5,4,3,2,1)
>>> mylist=[5,4,3,2,1]

>>> sorted(mystring)
>>>[1, 2, 3, 4, 5]

>>>mystring
>>>"54321"

>>> sorted(mytuple)
>>>[1, 2, 3, 4, 5]

>>> sorted(mylist)
>>>[1, 2, 3, 4, 5]

reverse()與sort的使用方式一樣,而reversed()與sorted()的使用方式相同。

代碼如下:

>>> mylist=[5,4,3,2,1]
>>> mylist.reverse()
>>> mylist
>>>[1, 2, 3, 4, 5]

>>> for i in reversed(mylist):
>>>print i,
>>>1 2 3 4 5

通過序列的切片也可以達(dá)到“逆轉(zhuǎn)”的效果

代碼如下:

>>> mystring="54321"
>>> mytuple=(5,4,3,2,1)
>>> mylist=[5,4,3,2,1]

>>> mystring[::-1]

>>>'12345'
>>> mytuple[::-1]
>>>(1, 2, 3, 4, 5)
>>> mylist[::-1]

>>>[1, 2, 3, 4, 5]

補(bǔ)充知識:python sorted()函數(shù)cmp,key,reverse參數(shù)詳解

Python幫助文檔中對sorted方法的講解:

sorted(iterable[,cmp,[,key[,reverse=True]]])

作用:返回一個經(jīng)過排序的列表。

第一個參數(shù)是一個iterable,返回值是一個對iterable中元素進(jìn)行排序后的列表(list)。

可選的參數(shù)有三個,cmp、key和reverse。

1)cmp指定一個定制的比較函數(shù),這個函數(shù)接收兩個參數(shù)(iterable的元素),如果第一個參數(shù)小于第二個參數(shù),返回一個負(fù)數(shù);如果第一個參數(shù)等于第二個參數(shù),返回零;如果第一個參數(shù)大于第二個參數(shù),返回一個正數(shù)。默認(rèn)值為None。

2)key指定一個接收一個參數(shù)的函數(shù),這個函數(shù)用于從每個元素中提取一個用于比較的關(guān)鍵字。默認(rèn)值為None。

3)reverse是一個布爾值。如果設(shè)置為True,列表元素將被倒序排列。

key參數(shù)的值應(yīng)該是一個函數(shù),這個函數(shù)接收一個參數(shù)并且返回一個用于比較的關(guān)鍵字。對復(fù)雜對象的比較通常是使用對象的切片作為關(guān)鍵字。

例如:

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda s: s[2]) #按年齡排序
# [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

以上就是關(guān)于python中sort、sorted、reverse和reversed函數(shù)有什么區(qū)別的內(nèi)容,如果你們有學(xué)習(xí)到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI