检查Python中的dict对象内是否存在属性集合

有什么好方法可以检查Python的dict对象中是否存在属性集合?


目前,我们正在这样做,但似乎有更好的方法:


properties_to_check_for = ['name', 'date', 'birth']

for property in properties_to_check_for:

    if property not in dict_obj or dict_obj[property] is None:

        return False

非常感谢!


动漫人物
浏览 221回答 3
3回答

潇湘沐

您可以使用any():any(dict_obj.get(prop) is None for prop in properties_to_check_for )如果property在中找不到任何properties_to_check_for值或值为,则将返回True None。

jeck猫

对于大型字典与大型列表比较,将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.82882809638977timeit.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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python