我有一本字典词典。我想计算有多少词典将元素“状态”设置为“正在连接”。

这是我的工作代码:

connecting = 0
for x in self.servers:
    if self.servers[x]["status"] == "connecting": connecting += 1

有没有办法压缩这个?我在想这样的事情:
connecting = [1 if self.servers[x]["status"] == "closed" else 0 for x in self.servers]

但它只返回一个 0 和 1 的列表,并没有将该 1 添加到连接中,这正是我所期望的。

最佳答案

您可以在 sum 函数中使用生成器表达式:

sum(x["status"]=="connecting" for x in self.servers.values())

请注意,由于 x["status"]=="connecting" 的结果是一个 bool 值,如果它是 True,python 会将其评估为 1,因此最终它将返回符合您条件的字典数。

关于python - 如何压缩这个?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33738355/

10-10 16:47