Python中列表和字符串的反转
生活随笔
收集整理的這篇文章主要介紹了
Python中列表和字符串的反转
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
要求:
-
原列表:[13, 30, 42, 85, 9, 45]
-
反轉后的列表:[45, 9, 85, 42, 30, 13]
-
原字符串:hello
-
反轉后的字符串:olleh
Python現成的反轉功能:
在Python中有專門進行列表反轉的函數–reverse()
l = [13, 30, 42, 85, 9, 45] l.reverse() # [45, 9, 85, 42, 30, 13]還可以使用切片操作進行列表反轉
l = [13, 30, 42, 85, 9, 45] print(l[::-1]) # [45, 9, 85, 42, 30, 13]關于字符串的反轉,并沒有確切的函數對字符串進行反轉,但是字符串也可以使用切片進行反轉
s = "hello" print(s[::-1]) # olleh以上對列表和字符串的反轉,都是現成的,使用起來很方便;但是我們也可以自己為列表和字符串手寫一個反轉函數(僅供參考)
手寫列表反轉函數:
思路1:
- 把列表中的值當成轉成字典的value,字典的key為遞增的數字
- 通過sorted()對字典key進行降序
- 依次取出進行降序后字典的value值,放到列表中
- 得到的就是反轉后的列表
代碼:
''' Python學習交流,免費公開課,免費資料, 免費答疑,系統學習加QQ群:579817333 ''' def reverse_list(n: list) -> list:d = dict(zip([i for i in range(len(n))], n))return [d[k] for k in sorted(d, reverse=True)]使用:
l = [13, 30, 42, 85, 9, 45] print(reverse_list(l)) # [45, 9, 85, 42, 30, 13]思路2:
- 把列表通過 enumerate() 返回一個可以枚舉的對象,該對象的next()方法將返回一個元組
- 把返回的元組放到一個新的列表中,通過sorted() 進行列表排序(根據列表中元組元素的第一個元素進行排序,使用降序)
- 遍歷排序后的新列表,取每個元組元素的第二個元素,組成新列表
- 得到的新列表就是反轉后的列表
代碼:
def reverse_list(l: list) -> list:return [i[1] for i in sorted([v for v in enumerate(l)], reverse=True)]使用:
l = [13, 30, 42, 85, 9, 45] print(reverse_list(l)) # [45, 9, 85, 42, 30, 13]思路3:
- 取列表最后一位追加到新列表后面
- 然后通過切片把最后一位之前的數據重新賦值給當前列表
- 依次重復操作,直至列表為空
- 得到的新列表就是反轉后的
代碼:
''' Python學習交流,免費公開課,免費資料, 免費答疑,系統學習加QQ群:579817333 ''' def reverse_list(n: list) -> list:a = []while len(n) > 0:a.append(n[-1])n = n[:-1]return a使用:
l = [13, 30, 42, 85, 9, 45] print(reverse_list(l)) # [45, 9, 85, 42, 30, 13]思路4:
- 通過切片獲取列表下標為 [-i - 1] 的元素
- 把切片得到的元素添加到新的列表中
- 依次重復操作,直至循環結束
- 得到的新列表就是反轉后的
代碼:
def reverse_list(n: list) -> list:return [n[-i - 1] for i in range(len(n))]使用:
l = [13, 30, 42, 85, 9, 45] print(reverse_list(l)) # [45, 9, 85, 42, 30, 13]手寫字符串反轉函數:
思路1:
- 通過切片獲取字符串最后一位
- 通過字符串拼接,把最后一位拼接到新的字符串中
- 然后通過切片把最后一位之前的數據重新賦值給當前字符串
- 依次重復操作,直至字符串為空
- 得到的新字符串就是反轉后的
代碼:
''' Python學習交流,免費公開課,免費資料, 免費答疑,系統學習加QQ群:579817333 ''' def reverse_str(s: str) -> str:new_s = ''while len(s) > 0:new_s += (s[-1])s = s[0:-1]return new_s使用:
s = "hello" print(reverse_str(s)) # olleh思路2:
- 通過切片獲取字符串下標為 [-i - 1] 的元素
- 通過字符串拼接,把切片得到的元素拼接到新的字符串中
- 依次重復操作,直至循環結束
- 得到的新字符串就是反轉后的
代碼:
def reverse_str(s: str) -> str:new_s = ''for i in range(len(s)):new_s += s[-i - 1]return new_s使用:
s = "hello" print(reverse_str(s)) # olleh以上就是關于Python中列表和字符串的反轉操作(這才是冰山一角,還有更多的實現方式),實際應用中還是使用列表自帶的函數和切片操作進行反轉即可,手寫的僅供參考使用,寫代碼嘛,怎么簡單易懂怎么來。
總結
以上是生活随笔為你收集整理的Python中列表和字符串的反转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python函数定义与使用
- 下一篇: Python基础教程:list中的app