所以我很难找到一个pythonic(或者我应该说功能?)的方法来做到这一点。我有一个对象列表,我想对对象属性执行布尔比较。我希望如果每个元素的计算结果为true,则结果为true;如果一个元素的计算结果为true,则结果为false。希望下面的代码显示我想要做的事情。我知道我可以用蛮力的方式做到这一点,但我不想......哈哈
class obj
def __init__(self, x):
self.x = x
... somewhere else in the code
objects_list = list of class obj
bool_result = true if all obj.x in list == some value
谢谢!
答案 0 :(得分:4)
您可以使用all
:
如果iterable的所有元素都为true(或者iterable为空),则返回True。
print all(item.x == some_value for item in my_list)
答案 1 :(得分:3)
Python for:
bool_result = true if all obj.x in list == some value
是
bool_result = all(obj.x == some_value for obj in L)
答案 2 :(得分:1)
bool_result = all(object.x == some_value for object in objects_list)