gpt4 book ai didi

python - python中的 'Set changed size during iteration'运行时错误

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

我们可以在java中的“for”循环中使用set.iterator().remove()。相比之下,如何编写类似的python代码?

def fun1():
a=set(range(10))
for num in a:
if(num%2==0):
a.remove(num)
print(a)

def fun2():
a=range(10)
for num in a:
if(num%2==0):
a.remove(num)
print(a)

#RuntimeError: Set changed size during iteration
fun1()

#works well
fun2()

最佳答案

这应该有效:

def fun3():
a = set(range(10))
return set(num for num in a if num % 2)

print(fun3())

答案使用 generator expression , num for num in a if num % 2,过滤a的成员。

关于python - python中的 'Set changed size during iteration'运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43036729/

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