我有一本字典词典。我想计算有多少词典将元素“状态”设置为“正在连接”。
这是我的工作代码:
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/