【发布时间】:2013-12-04 22:31:12
【问题描述】:
我对 Python 和整体编程很陌生,所以请耐心等待。
我有一个 ['Male', 'Female', 'Eunuch'] 的字典作为值和不同的名称作为键:
Persons = { 'Hodor' : 'Male', 'Tyrion': 'Male', 'Theon': 'Male', 'Arya': 'Female', 'Daenerys': 'Female', 'Sansa': 'Female', 'Varys': 'Eunuch}
我想订购它们到{ Gender: {Names: Counts}}
这样:
输入:
lst = ['Hodor', 'Hodor', 'Tyrion', 'Tyrion', 'Tyrion', 'Arya', 'Daenerys', 'Daenerys', 'Varys']
输出:
{'Male': {'Hodor': 2, 'Tyrion': 3, Theon: 0}, 'Female': {'Arya': 1, 'Daenerys': 2, 'Sansa': 0}, 'Eunuch': {'Varys': 1}}
我尝试的第一件事是编写计数代码:
counts = {}
for key in Persons:
counts[key] = 0
for key in lst:
counts[key] += 1
我的字典 D 现在包含计数,但我如何将它们一起计算?
Names = Persons.keys()
Gender = Persons.values()
Counts = counts.values()
Names = counts.keys()
如果未提及变量,则输出中不应出现性别“太监”。 我尝试过不同的东西,但是当我尝试连接它们时。我尝试用值切换键,但只出现一个名称。
希望它对我想做的事情有意义:)
编辑:如果没有提到 Sansa 并且其他女性是她的值应该是 0。我希望能够操纵这些数字。说明与所有男性相比,提到阿多的百分比是多少。
【问题讨论】:
-
看看
collections.Counter-class。
标签: python dictionary key