【发布时间】:2021-03-17 02:18:18
【问题描述】:
假设我有下面的字典
{
"1": {
"rarity": 1
},
"2": {
"rarity": 2
}
}
我想找到rarity 的次数是 1。而不是做
count = 0
for x in dict.values():
if x['rarity'] == 1:
count += 1
return count
有没有更好的方法来做到这一点?我发现this 发布了关于使用map 的帖子,但我不确定如何让它与嵌套字典一起使用。
【问题讨论】:
-
我的写法就是
sum(1 for v in d.values() if v["rarity"] == 1)。 -
您有兴趣了解它的工作原理还是只想在某个地方使用它?
-
高效?凭什么?此外,您的代码似乎没有按照您说的去做。
-
@jizhihaoSAMA 只有这么小的样本集,
count将是 1。@MateenUlhaq 我想我正在寻找“正确”的方式。我觉得我的作品有效,但这不合适,因为它在 for 循环中迭代每个值,而我认为map或lambda可能会起作用。还有x==4应该是x['rarity']==1,我的错。 -
@MateenUlhaq 可以更短
sum也算真值sum(v["rarity"] == 1 for v in d.values())
标签: python dictionary