python中的字典数学 - 键在那里,值为空[重复]

问题描述 投票:0回答:1

我有两个词典,一个是从数据集中填充的,另一个是我手动创建的。我试图对它们进行一些数学运算,并将结果存储在另一个字典中。它在一个在线平台上工作,但是当我使用PyCharm运行Jupyter笔记本时,它不会返回正确的结果。知道为什么吗?

这是两个词典的创建,以及两个词典的输出(即词典的内容)

race_counts = {}
    for race in race:
        if race not in race_counts:
            race_counts[race] = 1
        else:
            race_counts[race] += 1

mapping = {
'Asian/Pacific Islander': 15159516 + 674625,
'Native American/Native Alaskan': 3739506,
'Black': 40250635,
'Hispanic': 44618105,
'White': 197318956
}

race_counts字典:

{'Native American/Native Alaskan': 917,
 'Black': 23296,
 'White': 66237, 
 'Asian/Pacific Islander': 1326,
 'Hispanic': 9022}

映射字典:

{'Native American/Native Alaskan': 3739506,
 'Black': 40250635,
 'White': 197318956,
 'Asian/Pacific Islander': 15834141,
 'Hispanic': 44618105}

这是我正在尝试的数学:

race_per_hundredk = {}
for race in race_counts:
    race_per_hundredk[race] = (race_counts[race] / mapping[race]) * 100000
print(race_per_hundredk)

现在,我期待的正确输出是这样的:

{'Asian/Pacific Islander': 8.374309664161762,
 'Black': 57.8773477735196,
 'Hispanic': 20.220491210910907,
 'Native American/Native Alaskan': 24.521955573811088,
 'White': 33.56849303419181}

但是,相反,我得到了这个:

{'Native American/Native Alaskan': 0,
 'Asian/Pacific Islander': 0
 'White': 0, 
 'Black': 0,
 'Hispanic': 0}

键的顺序无关紧要,但我不确定为什么值被返回为空。

谢谢你,伙计们。我发誓,当我对我正在做的事情有所了解时,我会开始回答一些问题并给予回馈。

python dictionary math
1个回答
0
投票

尝试float铸造:

race_per_hundredk = {}
for race in race_counts:
    race_per_hundredk[race] = (race_counts[race] / float(mapping[race])) * 100000
print(race_per_hundredk)
© www.soinside.com 2019 - 2024. All rights reserved.