成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

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

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 編程
相關文章:
主站蜘蛛池模板: 在线观看免费亚洲 | 欧美精品在线一区二区三区 | 日韩欧美一区二区在线 | 三级色网站 | 美女黄色一级毛片 | 国产午夜精品一区二区三区不卡 | 成人性一级视频在线观看 | 特级毛片a级毛免费播放 | 自拍偷在线精品自拍偷无码专区 | 欧美成人全部免费观看1314色 | 午夜爽爽爽男女免费观看hd | 国产伦精一区二区三区 | 久久99精品九九九久久婷婷 | 欧美啊v在线观看 | 国产精品99在线观看 | 久久99久久99精品免观看 | 91国偷自产一区二区三区 | 久久一区二区三区不卡 | 久久精品国产一区二区三区 | 免费一级毛片在线观看 | 欧美亚洲精品在线 | 久久精品亚洲综合一品 | 欧美成人性色xxxxx视频大 | 亚洲九九| 欧美激情亚洲一区中文字幕 | 亚洲综合日韩欧美一区二区三 | 成人毛片1024你懂的 | 久草在线新视觉 | 一级成人黄色片 | 国产成在线观看免费视频 | 三级视频网站在线观看 | 亚洲视频成人 | 成人禁在线观看午夜亚洲 | 欧美激情一级欧美精品 | 暖暖视频日韩欧美在线观看 | 91高端极品外围在线观看 | 欧美多人三级级视频播放 | 欧美在线播放成人免费 | 无码孕妇孕交在线观看 | 亚洲欧美网址 | 日韩高清在线播放不卡 |