gpt4 book ai didi

python - 创建一个反转迭代器的函数

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:54 25 4
gpt4 key购买 nike

我这样做是为了更好地理解 iter()next() 方法。

所以我知道这可以使用一些内置函数轻松完成:

>>>animal = 'cat'
>>>print(list(reversed(animal)))
['t','a','c']

但这也可以通过创建一个可迭代的类来完成:

class Reverselist():
def __init__(self, data):
self.data = data
self.index = len(data)

def __iter__(self):
return self

def __next__(self):
if self.index == 0:
raise StopIteration
self.index =self.index -1
return self.data[self.index]

def intolist(self):
self.test = [i for i in self]
return self.test

rev = Reverselist('cat')
print(rev.intolist())

['t','a','c']

但是,我在做同样的事情时遇到了一些麻烦,但使用函数而不是走 OOO 路线。

是否有一种方法可以使用 iter()next() 方法来执行此操作,而无需求助于推导式和循环?

最佳答案

您可以使用generator function来做到这一点:

def reverse_list(seq):
for index in range(len(seq)-1, -1, -1):
yield seq[index]

调用此函数将生成一个支持 iter()next() 的“生成器对象”。

>>> rev = reverse_list('cat')
>>> rev
<generator object reverse_list at 0x10a93ebe0>
>>> next(rev)
't'

关于python - 创建一个反转迭代器的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33465530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com