日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python中列表和字符串的反转

發布時間:2025/3/20 python 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中列表和字符串的反转的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。