检查字典是否为空但有键

Check if dictionary is empty but with keys

我有一本字典,里面可能只有这些键。但是可以有 2 个键,例如 'news''coupon' 或者只有 'coupon'。如何检查字典是否为空? (以下词典为空。)

{'news': [], 'ad': [], 'coupon': []}
{'news': [], 'coupon': []}

我写了代码,但它应该只需要 3 个键:

if data["news"] == [] and data["ad"] == [] and data["coupon"] == []:
    print('empty')

如何不只拿3把钥匙?

你的字典不是空的,只有你的是。

测试每个值,使用 any function:

if not any(data.values()):
    # all values are empty, or there are no keys

这是最有效的方法; any() returns True 一遇到非空值:

>>> data = {'news': [], 'ad': [], 'coupon': []}
>>> not any(data.values())
True
>>> data["news"].append("No longer empty")
>>> not any(data.values())
False

这里,非空表示:该值有boolean truth valueTrue。如果您的值是其他容器(集合、字典、元组),但它也适用于任何其他遵循正常真值约定的 Python 对象。

如果字典是空的(没有键),则不需要做任何不同的事情:

>>> not any({})
True

如果它不为空,但它的所有值都是假的:

if data and not any(data.values()):
    print(empty)