Python - 对象列表中所有元素的布尔比较属性

时间:2015-07-04 02:28:43

标签: python list functional-programming

所以我很难找到一个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

谢谢!

3 个答案:

答案 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)