嗨 我必须验证向量是否包含全 0 或 1,如果不包含则引发异常:
def assert_all_zero_or_one(vector):
if set(vector)=={0}: return 0
if set(vector)=={1}: return 1
raise TypeError
执行此操作
assert_all_zero_or_one([1,1,1]) # return 1
assert_all_zero_or_one([0,0]) # return 0
assert_all_zero_or_one([1,0,1]) # raise TypeError
我不喜欢这个解决方案..有没有用 python 做的最好方法?
最佳答案
我认为您的解决方案很好地传达了您的意图。你也可以这样做
def assert_all_zero_or_one(vector):
if set(vector) not in ({0}, {1}): raise TypeError
return vector[0]
所以你只构建一次set(vector)
,但我认为你的更容易理解。
关于python:验证条件和引发异常的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5015775/