我有一本字典,其中的值是列表元素:
dict1={'A':[9,0,8],'B':[6,5,4],'C':[]}
现在我必须处理这个字典来检查字典中的所有值是否都是空列表;如果是,请收集钥匙。
有比简单地遍历条目更好的选择吗?
我有一本字典,其中的值是列表元素:
dict1={'A':[9,0,8],'B':[6,5,4],'C':[]}
现在我必须处理这个字典来检查字典中的所有值是否都是空列表;如果是,请收集钥匙。
有比简单地遍历条目更好的选择吗?
if not any(dict1.values()):
res = dict1.keys()
一旦你有了字典,你就不能避免为了过滤它而不得不遍历这些项目:
keys = [key for key, value in dict1.items() if not value]
if len(keys) != len(dict1):
# Do something about the mis-match
您可以测试 dict 值的真实性:
di={'A':[9,0,8],'B':[6,5,4],'C':[], 'D':[0], 'E': []}
truthy= [k for k in di if di[k]]
falsy= [k for k in di if not di[k]]
print 'truthy:{}, falsy:{}'.format(truthy,falsy)
印刷:
truthy:['A', 'B', 'D'], falsy:['C', 'E']
您还可以使用过滤器:
truthy=filter(lambda k: di[k], di)
falsy=filter(lambda k: not di[k], di)