3 回答

TA貢獻1816條經(jīng)驗 獲得超6個贊
您可以使用any()
:
any(dict_obj.get(prop) is None for prop in properties_to_check_for )
如果property
在中找不到任何properties_to_check_for
值或值為,則將返回True None
。

TA貢獻1909條經(jīng)驗 獲得超7個贊
對于大型字典與大型列表比較,將set返回的-like對象viewkeys與的set版本進行比較properties_to_check_for可能會帶來性能上的好處
if dict_obj.viewkeys() >= set(properties_to_check_for):
時序測量:
timeit.timeit('dict_obj.viewkeys() >= set(properties_to_check_for)',
setup='dict_obj = dict(zip(xrange(100000), xrange(100000))); properties_to_check_for=xrange(10000)',
number=10000)
9.82882809638977
timeit.timeit('all(key in dict_obj for key in properties_to_check_for)',
setup='dict_obj =dict(zip(xrange(100000),xrange(100000)));properties_to_check_for=list(xrange(10000))',
number=10000)
12.362821102142334
添加回答
舉報