当前位置: 首页 > 知识库问答 >
问题:

Python:检查'Dictionary'是否为空似乎不起作用

瞿子濯
2023-03-14

我正在试着检查字典是否是空的,但它的行为不正常。它只是跳过它并在线显示,除了显示消息之外没有任何东西。知道为什么吗?

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()))    

共有3个答案

徐友樵
2023-03-14
dict = {}
print(len(dict.keys()))

如果length为零,则表示dict为空

秦琦
2023-03-14

这里有三种方法可以检查dict是否为空。不过我更喜欢用第一种方式。另外两种方式都太罗嗦了。

test_dict = {}

if not test_dict:
    print "Dict is Empty"


if not bool(test_dict):
    print "Dict is Empty"


if len(test_dict) == 0:
    print "Dict is Empty"
田谦
2023-03-14

空字典在Python中的计算结果为false:

>>> dct = {}
>>> bool(dct)
False
>>> not dct
True
>>>

因此,您的isempty函数是不必要的。你所需要做的就是:

def onMessage(self, socket, message):
    if not self.users:
        socket.send("Nobody is online, please use REGISTER command" \
                    " in order to register into the server")
    else:
        socket.send("ONLINE " + ' ' .join(self.users.keys()))
 类似资料:
  • 问题内容: 我正在尝试检查字典是否为空,但是行为不正常。它只是跳过它并显示 ONLINE(在线) ,除了显示消息外没有任何内容。有什么想法吗? 问题答案: 空字典在Python中的计算结果为: 因此,您的功能是不必要的。您需要做的是:

  • 我的代码看起来像 我的文件如下所示 当我运行程序时,我看到 我怎样才能修好它呢?

  • 问题内容: 我在使用该功能时遇到了麻烦。 我只需要知道SQL查询是否返回零行。 我已经尝试过以下简单的语句: 类型是哪里。上面的代码似乎不起作用。无论是否为空,它将始终打印该消息。 我检查了SQL查询本身,当存在行时它正确返回了非空结果。 关于如何确定查询是否已返回0行的任何想法?我用谷歌搜索,找不到任何答案。 问题答案: ResultSet.getFetchSize()不返回结果数!从这里: 使

  • 问题内容: 我正在使用JDBC连接到MySQL服务器(我认为没有连接池)。在连接网址中,我有 但是我的连接仍然超时。我什至检查了它的错误。但是,当我尝试使用连接时,出现以下异常。 我知道在Java 1.6中可以使用它来检查连接,但是我正在使用Java 1.5 有没有办法确保它不会超时?还是我必须升级到Java 1.6? 问题答案: 我有同样的问题,这绝对令人发疯。这是文档在MySQL网站上的内容(

  • 问题内容: 月格式说明符似乎不起作用。 现在,根据手册,手册: %m =月,十进制数[01,12]。 那么,除了我试图理解我的django __filter查询为什么什么都不返回(输入的日期无效!)的原因之外,我还缺少什么呢?我已经尝试了,但无济于事。 事物,平台,架构等的版本: 问题答案: 您不能将它们与其他格式的代码混合使用,因为如果您在表中查看的话,所链接的%j是十进制数字[001,366]

  • 问题内容: 即使将属性设置为,我仍然会插入重复的条目。 我设置了使用定期在。我没有用表 问题答案: 我没有使用JPA创建表 然后,您应该在语句中向表中添加唯一约束,例如,如果您使用的是MySQL: