首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“Python词典”中的键计数

“Python词典”中的键计数
EN

Stack Overflow用户
提问于 2020-04-12 23:51:38
回答 4查看 64关注 0票数 0

假设我有这样一个Python字典:

代码语言:javascript
复制
{'To Kill a Mockingbird': ('Fiction', 11.99, 89), 'Killing Lincoln': ('Nonfiction', 15.99, 85), ... }

我怎样才能通过把小说和非小说书籍的种类加起来来增加一本新的词典呢?

我将从这样一本空字典开始:

代码语言:javascript
复制
temp = {'Fiction': 0, 'Nonfiction': 0}

换句话说,假设我有5本小说书和17本非小说类书籍,我想要的是

代码语言:javascript
复制
newTemp = {'Fiction': 5, 'Nonfiction': 17}

我有点困惑如何访问钥匙,看看它们是如何匹配的。

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-04-12 23:57:33

代码语言:javascript
复制
a = {'To Kill a Mockingbird': ('Fiction', 11.99, 89), 'Killing Lincoln': ('Nonfiction', 15.99, 85)}
dic = {'Fiction':0, 'Nonfiction':0}
for index, value in a.items():
    if value[0] in dic.keys():
            dic[value[0]]+=1

print(dic)
# output  {'Fiction': 1, 'Nonfiction': 1}      

或其他方式

代码语言:javascript
复制
 from collections import Counter
 a = {'To Kill a Mockingbird': ('Fiction', 11.99, 89), 'Killing Lincoln': ('Nonfiction', 15.99, 85)} 
 sol = Counter(map(lambda x:x[0], a.values()))
票数 1
EN

Stack Overflow用户

发布于 2020-04-12 23:57:00

您想要计数的字符串不是键--图书的标题是字典中的键。类型是值的一部分。数一数很容易:

代码语言:javascript
复制
from collections import Counter
dct = {'To Kill a Mockingbird': ('Fiction', 11.99, 89), 'Killing Lincoln': ('Nonfiction', 15.99, 85) }
c = Counter(x[0] for x in dct.values())
print(c)
票数 2
EN

Stack Overflow用户

发布于 2020-04-12 23:56:54

代码语言:javascript
复制
x = {'To Kill a Mockingbird': ('Fiction', 11.99, 89), 'Killing Lincoln': ('Nonfiction', 15.99, 85)}
cnt = {}
for val in x.values():
    cnt[val[0]] = cnt.get(val[0], 0) + 1

print(cnt)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61179692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档