我正在尝试统计状态字典中给出的“在线”人数。这是我拥有的代码,但它输出的是0。
def online_count(statuses):
count = 0
for x in statuses.items():
if x =='online':
count += 1
return count
statuses = {
"Alice": "online",
"Bob": "offline",
"Eve": "online",
}
print(online_count(statuses))发布于 2021-01-20 04:56:29
试试这个:
statuses = { "Alice": "online", "Bob": "offline", "Eve": "online", }
def online_count(statuses):
lst = list(statuses.values())
return lst.count("online")
print(online_count(statuses))基本上,它首先获取字典中所有值的列表。如果您不知道,可以使用字典将数据值存储在键:值对中。因此,所有值的列表将意味着所有"online" / "offlines"的列表
发布于 2021-01-20 04:58:52
您的回车缩进太多。将其移出循环。也就是说,您可以使用sum和对此的理解:
def online_count(statuses):
return sum(s == 'online' for s in statuses.values())谢谢@Sayandip Dutta!
https://stackoverflow.com/questions/65799366
复制相似问题