Python列表reverse()函數(shù)使用方法詳解
reverse() 可以「反轉」列表中的函數(shù)
語法
list.reverse()
返回值
- None ,沒有返回值,會修改列表,反轉元素順序。
實例:反轉列表中的元素順序
list1 = [1, 2, 3] list1.reverse() print(list1)
輸出:
[3, 2, 1]
1、reverse()會修改原始副本
reverse() 設計的目的就是反轉原始列表并返回None。
這樣設計的好處就是,不需要創(chuàng)建新的列表,從而減少「資源」的使用。
我們接收 reverse() 的返回值,打印一下,發(fā)現(xiàn)是個None。
list1 = [1, 2, 3] list2 = list1.reverse() print(list2)
輸出:
None
我們再看一下反轉前、后的內存地址
list1 = [1, 2, 3]
print('反轉前:', id(list1))
list1.reverse()
print('反轉前:', id(list1))輸出:
反轉前: 2127562869952
反轉前: 2127562869952
可以發(fā)現(xiàn),內存地址沒有變,但內容不一樣了,這意味著反轉前的數(shù)據(jù)「消失」了,這一點在使用時需要注意。
2、reverse()和reversed()的區(qū)別?
reversed() 也能反轉列表,同時「不修改」原始列表。
list1 = [1, 2, 3] list2 = list(reversed(list1)) print(list1) print(list2)
輸出:
[1, 2, 3]
[3, 2, 1]
reversed() 返回的是下面這種「反向迭代器」,需要轉成list才能正常使用。
list1 = [1, 2, 3] list2 = reversed(list1) print(list2)
輸出:
<list_reverseiterator object at 0x000002414D7CA880>
3、其他類型
字符串、元組、字典等類型不能使用 reverse() 函數(shù),否則會報錯 AttributeError: ‘str’ object has no attribute ‘reverse’。



當然,這些類型可以使用 reversed() 反轉,配合列表推導式:
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() 反轉后,可以轉換成對應的類型;
但字符串反轉后,轉換類型無效;而元組反轉后,轉換類型會報錯:
str1 = 'abc'
print(str(reversed(str1)))
dict1 = {'key1': 1, 'key2': 2}
print(dict(reversed(dict1)))輸出:

4、使用切片實現(xiàn)反轉元素
通過「切片」的方式,反轉列表中的元素,格式 [start:end:step],這種方式同樣不會改變原列表。
list1 = [1, 3, 2, 5] print(list1[::-1]) print(list1)
輸出:
[5, 2, 3, 1]
[1, 3, 2, 5]
到此這篇關于Python列表reverse()函數(shù)使用方法詳解的文章就介紹到這了,更多相關Python列表reverse()函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python中l(wèi)ambda函數(shù) list comprehension 和 zip函數(shù)使用指南
這篇文章主要介紹了python中l(wèi)ambda函數(shù) list comprehension 和 zip函數(shù)使用方法,非常的實用,有需要的朋友可以參考下2014-09-09

