我试图检查一个字典是否为空但它行为不正常 . 它只是跳过它并显示 ONLINE 没有任何东西,除了显示消息 . 有什么想法吗?
def isEmpty(self, dictionary):
for element in dictionary:
if element:
return True
return False
def onMessage(self, socket, message):
if self.isEmpty(self.users) == False:
socket.send("Nobody is online, please use REGISTER command" \
" in order to register into the server")
else:
socket.send("ONLINE " + ' ' .join(self.users.keys()))
8 回答
你也可以使用get() . 最初我认为它只检查密钥是否存在 .
我喜欢得到的是它不会触发异常,因此它可以很容易地遍历大型结构 .
Python 3:
以下三种方法可以检查dict是否为空 . 我更喜欢使用第一种方式 . 另外两种方式太过于罗嗦 .
如果length为零则表示dict为空
检查空字典的简单方法如下:
虽然方法1st比a = None时更严格,但方法1将提供正确的结果,但方法2将给出不正确的结果 .
使用'任何'
Python中的空字典evaluate to False:
因此,您的
isEmpty
功能是不必要的 . 您需要做的就是:为什么不使用平等测试?