Python中如何正确判断Dict是否为空?
看看 stdlib 文档,对这些 collection bool value False 是指 len=0
判断一个字典是否为空,最直接和Pythonic的方法是使用 if not dict_obj: 或者 if len(dict_obj) == 0:。
首选方法:if not dict_obj:
这是最推荐的方式,因为它利用了Python的“真值测试”。一个空字典在布尔上下文中被视为 False,非空字典被视为 True。代码简洁、高效且可读性强。
my_dict = {}
# 方法1:使用 `if not`
if not my_dict:
print("字典是空的")
else:
print("字典非空")
备选方法:if len(dict_obj) == 0:
这个方法也很清晰,直接检查字典的长度(即键值对的数量)是否为0。虽然不如方法1简洁,但意图非常明确。
my_dict = {}
# 方法2:检查长度
if len(my_dict) == 0:
print("字典是空的")
else:
print("字典非空")
需要避免的方法:
不要使用 if dict_obj == {}: 来检查。虽然功能上正确,但它创建了一个新的空字典对象来进行比较,效率较低且不够Pythonic。
总结:用 if not your_dict: 就对了。
楼主看样子是在爬不得了的东西
你的判断方法是正确的, 至于为何不如预期
你 type (link_and_name) 就明白了
点赞啊
RBQ。RBQ。
{str}’{}’, 你所谓的是个字典其实是个字符串’{}’,这个字符串非空,所以 not link_and_name is False
另外 elif os.path.exists(‘info’) is False: 可以直接写成 elif not os.path.exists(‘info’):
判断一个 dict 是否为空,应该用 len(dict.keys())==0,你这样是判断是否为 None,判断是否在 dict 中,是 if key in dict.
New91Crawler ……(#`O ′)妖妖灵吗,这里有人蛇黄
你那是个字符串,不是字典
不得了, 爬 91
等等 你在爬 91 ?



