歡迎您光臨本站 註冊首頁

python的reverse函數翻轉結果為None的問題

←手機掃碼閱讀     bom485332 @ 2020-05-12 , reply:0

今天刷二級題的時候,遇到一個問題
>>> L2=[1,2,3,4] >>> L3=L2.reverse() >>> print( L3) None >>> print(L3) None >>> print(L2.reverse()) None
其實我想讓它輸出[4,3,2,1]
reverse函數,翻轉列表
然後我改了一下
>>> L2.reverse() >>> L3=L2 >>> print(L3) [4, 3, 2, 1] >>> print(L2) [4, 3, 2, 1] >>>
這是在網上找到的解釋
a=[1,2,3,4].reverse() �C why “a” is None?
看到其討論說到:
b = [1,2,3,4] a = b.reverse() would change the value of b.
才想起來,原來這個reverse函數,針對列表的操作,其結果是直接改變列表本身(為了節省空間),所以,直接就把原先的list改為你所想要的reversed後的結果了,而返回值,是空的,不返回任何值。
所以,本身直接使用:
a.reverse(); # -> is OK, the self is reversed !!!
補充知識:Python中reverse與reverse=true
排序
a = [2, 3, 1] a.sort(reverse=True) print(a) # [3, 2, 1]
沒有排序
a = [2, 3, 1] a.reverse() print(a) # [1, 3, 2]


[bom485332 ] python的reverse函數翻轉結果為None的問題已經有260次圍觀

http://coctec.com/docs/python/shhow-post-234054.html