我们可以在 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()
答案 0 :(得分:1)
这应该有效:
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
的成员。