欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 如何反方向迭代一個序列

 更新時間:2020年07月28日 10:17:37   作者:看云  
這篇文章主要介紹了Python 如何反方向迭代一個序列,文中講解非常細致,代碼幫助大家更好理解和學習,感興趣的朋友可以了解下

問題

你想反方向迭代一個序列

解決方案

使用內置的 reversed() 函數,比如:

>>> a = [1, 2, 3, 4]
>>> for x in reversed(a):
...   print(x)
...
4
3
2
1

反向迭代僅僅當對象的大小可預先確定或者對象實現了 __reversed__() 的特殊方法時才能生效。如果兩者都不符合,那你必須先將對象轉換為一個列表才行,比如:

# Print a file backwards
f = open('somefile')
for line in reversed(list(f)):
  print(line, end='')

要注意的是如果可迭代對象元素很多的話,將其預先轉換為一個列表要消耗大量的內存。

討論

很多程序員并不知道可以通過在自定義類上實現 __reversed__() 方法來實現反向迭代。比如:

class Countdown:
  def __init__(self, start):
    self.start = start

  # Forward iterator
  def __iter__(self):
    n = self.start
    while n > 0:
      yield n
      n -= 1

  # Reverse iterator
  def __reversed__(self):
    n = 1
    while n <= self.start:
      yield n
      n += 1

for rr in reversed(Countdown(30)):
  print(rr)
for rr in Countdown(30):
  print(rr)

定義一個反向迭代器可以使得代碼非常的高效,因為它不再需要將數據填充到一個列表中然后再去反向迭代這個列表。

以上就是Python 如何反方向迭代一個序列的詳細內容,更多關于Python 反向迭代的資料請關注腳本之家其它相關文章!

相關文章

  • 一百多行python代碼實現搶票助手

    一百多行python代碼實現搶票助手

    一百多行python代碼輕松實現搶票助手,十一出行不再愁!本文具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python 實現語音聊天機器人的示例代碼

    python 實現語音聊天機器人的示例代碼

    這篇文章主要介紹了python 實現語音聊天機器人的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Python異步處理返回進度——使用Flask實現進度條

    Python異步處理返回進度——使用Flask實現進度條

    這篇文章主要介紹了Python異步處理返回進度——使用Flask實現進度條,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 使用python批量修改文件名的方法(視頻合并時)

    使用python批量修改文件名的方法(視頻合并時)

    這篇文章主要介紹了視頻合并時使用python批量修改文件名的方法,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 利用aardio給python編寫圖形界面

    利用aardio給python編寫圖形界面

    這篇文章主要為大家詳細介紹了利用aardio給python編寫圖形界面的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • PyCharm 2019.3發(fā)布增加了新功能一覽

    PyCharm 2019.3發(fā)布增加了新功能一覽

    這篇文章主要介紹了PyCharm 2019.3發(fā)布,增加了新功能一覽,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Python Beautiful Soup 使用示例詳解

    Python Beautiful Soup 使用示例詳解

    Beautiful Soup 是一個 Python 庫,用于解析 HTML 和 XML 文檔,并提供簡單而直觀的 API 來遍歷文檔樹、搜索元素、提取內容等,這篇文章主要介紹了Python Beautiful Soup 使用示例詳解,需要的朋友可以參考下
    2024-05-05
  • 單步調試 step into/step out/step over 區(qū)別說明

    單步調試 step into/step out/step over 區(qū)

    這篇文章主要介紹了單步調試 step into/step out/step over 區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 教你使用conda虛擬環(huán)境管理(創(chuàng)建、激活、重命名、刪除虛擬環(huán)境)

    教你使用conda虛擬環(huán)境管理(創(chuàng)建、激活、重命名、刪除虛擬環(huán)境)

    conda是一個強大的Python包管理和環(huán)境管理工具,它可以幫助我們輕松地安裝、更新、卸載和切換不同版本的Python和各種第三方庫,本文就來介紹一下conda虛擬環(huán)境管理(創(chuàng)建、激活、重命名、刪除虛擬環(huán)境),感興趣的可以了解一下
    2024-01-01
  • python實現圖像增強算法

    python實現圖像增強算法

    這篇文章主要為大家詳細介紹了python實現圖像增強算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評論