python defaultdict如何在不创建密钥的情况下检查嵌套密钥是否存
发布时间:2020-12-20 11:45:58 所属栏目:Python 来源:网络整理
导读:结构a = defaultdict(lambda:defaultdict(list))的嵌套defaultdict a中有3种类型的条目. for i in a: print a[i]defaultdict(type 'list',{'ldap_uidnumber': [['10002']],'file': ['ABC','xyz']})defaultdict(type 'list',{'ldap_uidnumber': [],'file': [
结构a = defaultdict(lambda:defaultdict(list))的嵌套defaultdict a中有3种类型的条目.
for i in a: print a[i] defaultdict(<type 'list'>,{'ldap_uidnumber': [['10002']],'file': ['ABC','xyz']}) defaultdict(<type 'list'>,{'ldap_uidnumber': [],'file': ['abcd']}) defaultdict(<type 'list'>,{'file': ['/home/testuser/.ssh/id_rsa.pub']}) >如何使用ldap_uidnumber:[]过滤掉第二个? 我试过的代码: for i in a: if a[i]["ldap_uidnumber"] and a[i]["ldap_uidnumber"] == []: print i 但这不是打印任何内容,而是在此代码之后的第三个值中创建键,看起来像 defaultdict(<type 'list'>,'file': ['/home/testuser/.ssh/id_rsa.pub']}) 解决方法
使用in检查成员身份不会在defaultdict中创建密钥.我会推荐这个.
for i in a: if "ldap_uidnumber" in a[i] and # shortcircuit here in your 3rd el not a[i]['ldap_uidnumber']: # fail here in your 1st el # do something (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |