Python列表reverse()函數(shù)使用方法詳解
reverse() 可以「反轉(zhuǎn)」列表中的函數(shù)
語(yǔ)法
list.reverse()
返回值
- None ,沒(méi)有返回值,會(huì)修改列表,反轉(zhuǎn)元素順序。
實(shí)例:反轉(zhuǎn)列表中的元素順序
list1 = [1, 2, 3] list1.reverse() print(list1)
輸出:
[3, 2, 1]
1、reverse()會(huì)修改原始副本
reverse() 設(shè)計(jì)的目的就是反轉(zhuǎn)原始列表并返回None。
這樣設(shè)計(jì)的好處就是,不需要?jiǎng)?chuàng)建新的列表,從而減少「資源」的使用。
我們接收 reverse() 的返回值,打印一下,發(fā)現(xiàn)是個(gè)None。
list1 = [1, 2, 3] list2 = list1.reverse() print(list2)
輸出:
None
我們?cè)倏匆幌路崔D(zhuǎn)前、后的內(nèi)存地址
list1 = [1, 2, 3] print('反轉(zhuǎn)前:', id(list1)) list1.reverse() print('反轉(zhuǎn)前:', id(list1))
輸出:
反轉(zhuǎn)前: 2127562869952
反轉(zhuǎn)前: 2127562869952
可以發(fā)現(xiàn),內(nèi)存地址沒(méi)有變,但內(nèi)容不一樣了,這意味著反轉(zhuǎn)前的數(shù)據(jù)「消失」了,這一點(diǎn)在使用時(shí)需要注意。
2、reverse()和reversed()的區(qū)別?
reversed() 也能反轉(zhuǎn)列表,同時(shí)「不修改」原始列表。
list1 = [1, 2, 3] list2 = list(reversed(list1)) print(list1) print(list2)
輸出:
[1, 2, 3]
[3, 2, 1]
reversed() 返回的是下面這種「反向迭代器」,需要轉(zhuǎn)成list才能正常使用。
list1 = [1, 2, 3] list2 = reversed(list1) print(list2)
輸出:
<list_reverseiterator object at 0x000002414D7CA880>
3、其他類型
字符串、元組、字典等類型不能使用 reverse() 函數(shù),否則會(huì)報(bào)錯(cuò) AttributeError: ‘str’ object has no attribute ‘reverse’。
當(dāng)然,這些類型可以使用 reversed() 反轉(zhuǎn),配合列表推導(dǎo)式:
str1 = 'abc' print([x for x in reversed(str1)]) tuple1 = (1, 2, 3) print(tuple(reversed(tuple1))) dict1 = {'key1': 1, 'key2': 2} print([x for x in reversed(dict1)])
輸出:
['c', 'b', 'a']
(3, 2, 1)
['key2', 'key1']
需要注意的是,列表、元組 reversed() 反轉(zhuǎn)后,可以轉(zhuǎn)換成對(duì)應(yīng)的類型;
但字符串反轉(zhuǎn)后,轉(zhuǎn)換類型無(wú)效;而元組反轉(zhuǎn)后,轉(zhuǎn)換類型會(huì)報(bào)錯(cuò):
str1 = 'abc' print(str(reversed(str1))) dict1 = {'key1': 1, 'key2': 2} print(dict(reversed(dict1)))
輸出:
4、使用切片實(shí)現(xiàn)反轉(zhuǎn)元素
通過(guò)「切片」的方式,反轉(zhuǎn)列表中的元素,格式 [start:end:step]
,這種方式同樣不會(huì)改變?cè)斜怼?/p>
list1 = [1, 3, 2, 5] print(list1[::-1]) print(list1)
輸出:
[5, 2, 3, 1]
[1, 3, 2, 5]
到此這篇關(guān)于Python列表reverse()函數(shù)使用方法詳解的文章就介紹到這了,更多相關(guān)Python列表reverse()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python下singleton模式的實(shí)現(xiàn)方法
這篇文章主要介紹了Python下singleton模式的實(shí)現(xiàn)方法,有一定的借鑒價(jià)值,需要的朋友可以參考下2014-07-07Python實(shí)現(xiàn)批量提取PPT中的文字
這篇文章主要為大家詳細(xì)介紹了如何使用Python中的pptx和docx庫(kù)來(lái)將PPT中的文字提取到Word中,文中的示例代碼講解詳細(xì),有需要的可以參考下2024-03-03python通過(guò)zabbix api獲取主機(jī)
這篇文章主要為大家詳細(xì)介紹了python通過(guò)zabbix api獲取主機(jī),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09解決安裝和導(dǎo)入tensorflow、keras出錯(cuò)的問(wèn)題
這篇文章主要介紹了解決安裝和導(dǎo)入tensorflow、keras出錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01python3.6.4安裝opencv3.4.2的實(shí)現(xiàn)
這篇文章主要介紹了python3.6.4安裝opencv3.4.2的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10Python爬蟲(chóng)實(shí)戰(zhàn)之爬取京東商品數(shù)據(jù)并實(shí)實(shí)現(xiàn)數(shù)據(jù)可視化
今天再帶大家簡(jiǎn)單爬一波京東的商品數(shù)據(jù)唄,廢話不多說(shuō),文中有非常詳細(xì)的代碼示例,需要的朋友可以參考下2021-06-06Python?UnicodedecodeError編碼問(wèn)題解決方法匯總
本文主要介紹了Python?UnicodedecodeError編碼問(wèn)題解決方法匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08python如何實(shí)現(xiàn)排序,并標(biāo)上序號(hào)
這篇文章主要介紹了python如何實(shí)現(xiàn)排序,并標(biāo)上序號(hào),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06Python基礎(chǔ)語(yǔ)法中defaultdict的使用小結(jié)
Python的defaultdict是collections模塊中提供的一種特殊的字典類型,它與普通的字典(dict)有著相似的功能,本文主要介紹了Python基礎(chǔ)語(yǔ)法中defaultdict的使用小結(jié),感興趣的可以了解一下2025-04-04