我有一本词典字典.我想算一下这些词典中有多少元素的"状态"设置为"连接".
这是我的工作代码:
connecting = 0
for x in self.servers:
if self.servers[x]["status"] == "connecting": connecting += 1
Run Code Online (Sandbox Code Playgroud)
有没有办法压缩这个?我想的是:
connecting = [1 if self.servers[x]["status"] == "closed" else 0 for x in self.servers]
Run Code Online (Sandbox Code Playgroud)
但它只返回0和1的列表,不会将1添加到连接,这是我的预期.
您可以在sum
函数中使用生成器表达式:
sum(x["status"]=="connecting" for x in self.servers.values())
Run Code Online (Sandbox Code Playgroud)
请注意,因为结果x["status"]=="connecting"
是一个布尔值,如果它是True,python会将它评估为1,所以最后它将返回符合条件的字典数.
归档时间: |
|
查看次数: |
55 次 |
最近记录: |