色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:2日期:2022-07-16 10:06:02

問題

你想反方向迭代一個序列

解決方案

使用內(nèi)置的 reversed() 函數(shù),比如:

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

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

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

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

討論

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

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 += 1for rr in reversed(Countdown(30)): print(rr)for rr in Countdown(30): print(rr)

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

以上就是Python 如何反方向迭代一個序列的詳細內(nèi)容,更多關于Python 反向迭代的資料請關注好吧啦網(wǎng)其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲精品视频久久久 | 亚洲视频免 | 久久99视频精品 | 亚洲经典在线中文字幕 | 亚洲国产cao| 三级视频在线播放线观看 | 亚洲 中文 欧美 日韩 在线人 | 国产国产成人精品久久 | 中文字幕在线乱码不卡区区 | 欧美国产91 | 精品日韩二区三区精品视频 | 91精品国产免费网站 | 国产区香蕉精品系列在线观看不卡 | 99精品视频一区在线观看miya | 日本成人一级片 | 日韩欧美视频一区二区在线观看 | 亚洲自偷| 欧美巨大video粗暴 | 性色tv | 欧美午夜a级精美理论片 | 成人在线观看国产 | 亚洲天堂网站在线 | 亚洲 欧美 日韩中文字幕一区二区 | 97在线观看成人免费视频 | 国产精品日韩专区 | 亚洲欧美精品一区二区 | 黄免费看 | 欧美xxxxx九色视频免费观看 | 亚洲无卡视频 | 亚洲国产精品成人午夜在线观看 | 亚洲国产日韩成人综合天堂 | 在线观看91精品国产入口 | 精品国语_高清国语自产 | 女黄人东京手机福利视频 | 日本免费高清视频二区 | japanese色系国产在线高清 | 亚洲国产成+人+综合 | 九九99久久 | 欧美激情视频一级视频一级毛片 | 国产在线视频一区二区三区 | 欧美成人性生活视频 |