2015-07-04 47 views
1

所以我很努力地找到pythonic(或者我應該說功能?)的方式來做到這一點。我有一個對象的列表,我想對對象屬性執行布爾比較。如果每個元素的計算結果爲真或假,如果一個元素不計算爲真,我希望結果爲真。希望下面的代碼顯示我正在嘗試做什麼。我知道我可以用蠻力的方式做到這一點,但我不想...大聲笑Python - 對象列表中的所有元素的布爾比較屬性

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

感謝您的幫助! '全部'功能是我失蹤的! – nalyd88

回答

3

你或許可以使用all

返回真,如果迭代的所有元素都是真(或者,如果可迭代爲空)。

print all(item.x == some_value for item in my_list) 
3

Python的爲:

bool_result = true if all obj.x in list == some value 

bool_result = all(obj.x == some_value for obj in L) 
1

bool_result = all(object.x == some_value for object in objects_list)