为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

动漫人物 2021-03-20 15:15:28
有什么好方法可以检查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非常感谢!
查看完整描述

3 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

您可以使用any()

any(dict_obj.get(prop) is None for prop in properties_to_check_for )

如果property在中找不到任何properties_to_check_for值或值为,则将返回True None


查看完整回答
反对 回复 2021-03-29
?
jeck猫

TA贡献1909条经验 获得超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


查看完整回答
反对 回复 2021-03-29
  • 3 回答
  • 0 关注
  • 220 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信