检查字典是否为空但有键
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 value即True
。如果您的值是其他容器(集合、字典、元组),但它也适用于任何其他遵循正常真值约定的 Python 对象。
如果字典是空的(没有键),则不需要做任何不同的事情:
>>> not any({})
True
如果它不为空,但它的所有值都是假的:
if data and not any(data.values()):
print(empty)
我有一本字典,里面可能只有这些键。但是可以有 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 value即True
。如果您的值是其他容器(集合、字典、元组),但它也适用于任何其他遵循正常真值约定的 Python 对象。
如果字典是空的(没有键),则不需要做任何不同的事情:
>>> not any({})
True
如果它不为空,但它的所有值都是假的:
if data and not any(data.values()):
print(empty)