6
在python中,我尝试使用赋值创建迭代器的副本,但是它创建了引用原始迭代器本身的迭代器的副本。例如:如何创建python迭代器的副本?
my_list = [5, 4, 3,2]
first_it = iter(my_list)
second_it = first_it
print next(first_it) #it will print 5
print next(second_it) #it will print 4
print next(first_it) #it will print 3
正如您在示例中看到的,first_it和second_it都指向相同的迭代器对象。是否有可能创建一个不参考原始对象的迭代器对象的副本?
注意 这个问题是关于如何通过值创建迭代器对象的副本。所以不要提for item in my_list:
之类的解决方案。
在此先感谢
我用'copy.copy()'试过了,它也起作用了。也许有一个隐藏的捕获? –
@ Jean-FrançoisFabre:这不适用于发电机。例如,尝试使用'while True:yield random.random()'的生成器。可能与 –
有关:“你不能腌制发生器”。 –