亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

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热久久国产综合精品久久国产 | 草草影院ccyy国产日本欧美 | 亚州精品一区二区三区 | 欧美成人专区 | 精品一区二区三区高清免费不卡 | 国产欧美曰韩一区二区三区 | 日本精品一区二区三区在线视频一 | 久久亚洲国产最新网站 | 成人在线中文字幕 | 一级爱做片免费观看久久 | 玖玖精品视频在线 | 美女被男人桶到嗷嗷叫爽网站 | 九九精品视频在线播放 | 亚洲福利视频一区二区三区 | 亚洲免费色 | 国产成年人在线观看 | 韩国激情啪啪 | 高清一区二区在线观看 | 久久的精品99精品66 | 亚洲七七久久精品中文国产 | 成人免费黄色网址 | 久久福利资源站免费观看i 久久高清精品 | 久久综合精品国产一区二区三区无 | 亚洲黄色小视频 | 手机毛片在线 | 日韩精品亚洲专区在线观看 | 久久精品国产精品亚洲艾 | 亚洲二区在线播放 | 99久久综合精品国产 | 99久9在线视频 | 欧美在线视频一区二区 | 精品国产免费人成高清 | 久草国产视频 |