快速简便的方法来检查字典中所有项是否为空字符串?

4

我有一个包含N个条目的字典,它们的值是字符串,但我正在寻找一种简单的方法来检测它们是否都是空字符串。

{'a': u'', 'b': u'', 'c': u''}
2个回答

12
not any(dict.itervalues())

或者:

all(not X for X in dict.itervalues())

无论哪种你觉得更清晰明了。


或者,如果你真的想检查空字符串而不是假值,可以使用 all(x == "" for x in my_dict.itervalues()) - Sven Marnach
是的,你的列表推导式可能比我的建议更好。 - Ishpeck
@Ishpeck:这里没有列表推导式,只有生成器表达式。 - Sven Marnach
很酷,我对Python还很陌生,所以我不知道all或any! - speg

1

试试这个:

>>> d={'a':'', 'b':'', 'c':''}
>>> any(map(bool, d.values()))
False
>>> d={'a':'', 'b':'', 'c':'oaeu'}
>>> any(map(bool, d.values()))
True

2
map(bool,...) 部分是多余的 -- any() 无论如何都会转换为 bool。这有点像 if a == True - Sven Marnach

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接