我需要声明数组中的所有数值都是负数或非负数。
我写了这个:
def check(arr):
return all([i < 0 for i in arr]) or all([i >= 0 for i in arr])
而这一点,我认为效率稍高:
def check(arr):
temp = [i < 0 for i in arr]
return all(temp) or not any(temp)
我想知道是否有更清洁/更pythonic的方式,或者我可以使用的一些算术技巧。
谢谢:)
答案 0 :(得分:2)
一种方法是使用集合理解来导出set
布尔值。此set
将为{True}
,{False}
或{True, False}
。然后测试set
的长度是否等于1。
def check(arr):
return len({i < 0 for i in arr}) == 1