av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

問題

你想反方向迭代一個序列

解決方案

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

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

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

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

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

討論

很多程序員并不知道可以通過在自定義類上實(shí)現(xiàn) __reversed__() 方法來實(shí)現(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)

定義一個反向迭代器可以使得代碼非常的高效,因?yàn)樗辉傩枰獙?shù)據(jù)填充到一個列表中然后再去反向迭代這個列表。

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 黄色一级视频网站 | 自由成熟xxxx色视频 | 亚洲 欧美 激情 另类 校园 | 羞羞的视频网站 | 一级黄色片免费 | a级片免费观看 | 日韩成人在线播放 | 一区二区精品 | 人人干人人澡 | 国产精品久久久久久久久久久久午夜片 | 日韩国产在线观看 | 精品国产乱码久久久久久蜜臀网站 | 福利视频二区 | 在线播放一区 | 欧美日韩视频 | 日本一区二区三区在线视频 | 精品日韩一区 | 亚洲免费在线观看 | 久久久久久久久国产精品 | 亚洲一级在线 | 国产做爰免费观看视频 | 91精品国产成人www | 亚洲免费专区 | 久久精品视频网站 | 亚洲欧美在线观看视频 | 日本成人精品 | 日皮视频免费看 | 国产一区二区视频在线观看 | 午夜影院免费观看 | 亚洲精品一区二三区不卡 | 自由成熟xxxx色视频 | 宅男噜噜噜66一区二区 | 五月婷婷丁香六月 | 欧美一区二区三区在线观看 | 久久综合久 | 毛片网站视频 | 亚洲在线播放 | 亚洲一区二区三区在线视频 | 国产一区二区网站 | 亚洲在线观看视频 | 久草免费福利 |