gpt4 book ai didi

python - python中将迭代器转换为List

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:41 24 4
gpt4 key购买 nike

我有迭代器对象,我想将其转换为列表,但它的行为非常奇怪。
这是一个例子。这不是原始代码,只是为了生成完全相同的行为来理解问题。

class Sqrt:
def __init__(self, num):
self.original = num
self.sqrt = num * 2

class Math:
def set_value(self, num):
self.num = num
return self
def value(self):
return Sqrt(self.num)

class Counting:
def __init__(self):
self.num = 0
self.math = Math()
def __iter__(self):
return self
def __next__(self):
num = self.num
self.num += 1
if num <= 5:
m = self.math.set_value(num)
return m
raise StopIteration

c = Counting()

l = list(c)
for n in l:
print(n.value().original) # This will return 5 every time

如果您在 for 循环中使用它,那么一切都会正常工作。

for n in c:
print(n.value().original) # it work perfect

最佳答案

使用列表理解而不是 for 循环将返回一个列表。

c = 计数()
out_list = [n.value().c 中 n 的原始值]
打印(out_list)

输出:[0,1,2,3,4,5]

关于python - python中将迭代器转换为List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58887955/

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