[英]How can I pass a KeyError 2 in a set in Python?
我想删除键错误2,该错误指出Set中不存在该元素。 我已经尝试过使用set(None),我尝试过使用excep KeyError:pass ...这些工作都没有。 任何想法?
def p6():
myPossiblePrimes= set()
myDividersList= set()
for x in range(2,15):
for y in range(2,10):
if (x%y != 0):
myPossiblePrimes.add(x)
myDividersList.add(y)
else :
myPossiblePrimes.remove(x)
print (x, 'does equally divide with', y, ' and I removed it from the list')
return[print('These are my possible primes:',list(enumerate(myPossiblePrimes)), 'and these are my dividers', list(enumerate(myDividersList)))]
这是一些回报,这就是为什么我添加了其他从“可能素数”中删除它的原因:
8等于2除法,我没有做任何检查9没有等于2除法,我把9加到了可能的集合9等于3除法,我没有做任何检查10等于2除法,我做了不做任何检查
错误:
文件p6 myPossiblePrimes.remove(x)KeyError中的文件“ C:\\ Python33 \\ assignment 2.1.py”,行165 KeyError:2
您可以在删除之前检查密钥:
if (x%y != 0):
myPossiblePrimes.add(x)
myDividersList.add(y)
elif x in myPossiblePrimes:
myPossiblePrimes.remove(x)
但是,您过于贪婪而无法将数字添加到素数列表的逻辑存在问题。 尝试这样的事情:
for x in range(2,15):
for y in range(2,10):
if x%y == 0 and x != y:
myDividersList.add(y)
break
else: # the part below is executed if for loop ended without a break
myPossiblePrimes.add(x)
为了减少您的代码来解决这个问题:
if (x%y != 0):
myPossiblePrimes.add(x)
else :
myPossiblePrimes.remove(x)
如果尚未添加,如何删除?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.