Python —— 字典 2

Python —— 字典 1_笨小古的博客-CSDN博客_pythonzidian1

关于对字典的键、值的操作

先创建一个字典:

BirthAndDeath = {
    'birth':{
        'Mandarin':0.0121,
        'English':0.0136,
        'Spanish':0.0206,
        'Hindi':0.0161,
        'Russian':0.0140,
        'Portuguese':0.0141,
        'Bengali':0.0193,
        'French':0.0113,
        'Japanese':0.0082,
        'German':0.0097,
    },
    'death':{
        'Mandarin': 0.0071,
        'English': 0.0086,
        'Spanish': 0.0078,
        'Hindi': 0.0058,
        'Russian': 0.0141,
        'Portuguese': 0.0067,
        'Bengali': 0.0057,
        'French': 0.0082,
        'Japanese': 0.0094,
        'German': 0.0093,
    },
    'origin':{
        'Mandarin': 850,
        'English': 353,
        'Spanish': 400,
        'Hindi': 324,
        'Russian': 170,
        'Portuguese': 200,
        'Bengali': 190,
        'French': 76,
        'Japanese': 130,
        'German': 78,
    },
    'migration':{
        'Mandarin': 178,
        'English': 510,
        'Spanish': 90,
        'Hindi': 214,
        'Russian': 26,
        'Portuguese': 30,
        'Bengali': 20,
        'French': 87,
        'Japanese': 41,
        'German': 8,
    }
}

如果想要获取'birth'、'death'、' origin'或者'migration'的内容,可以取

BirthAndDeath['death']
{'Mandarin': 0.0071,
 'English': 0.0086,
 'Spanish': 0.0078,
 'Hindi': 0.0058,
 'Russian': 0.0141,
 'Portuguese': 0.0067,
 'Bengali': 0.0057,
 'French': 0.0082,
 'Japanese': 0.0094,
 'German': 0.0093}

这时候如果想要'death'中关于某一具体语言类型的数据时,可以取

BirthAndDeath['death']['English']
0.0086

也许会有人想要尝试利用索引来取出,然而是不可行,当然对于列表,如果知道位置,利用索引是很方便的。

接下来,我想要将'birth'中的所有键取出,那么可以这样

BirthAndDeath['birth'].keys()
['Mandarin', 'English', 'Spanish', 'Hindi', 'Russian', 'Portuguese', 'Bengali', 'French', 'Japanese', 'German']

 这看样子像是列表格式的,那么是与不是,这是个问题。

验证一下:

type(BirthAndDeath['birth'].keys())
dict_keys

根据返回的结果得知这是字典键类型。那到底能不能按列表来操作呢,用个索引试下:

bb = BirthAndDeath['birth'].keys()
print(bb[0])
'dict_keys' object is not subscriptable

那就是不行咯!

继续!取出'birth'中的所有值:

BirthAndDeath['birth'].values()
dict_values([0.0121, 0.0136, 0.0206, 0.0161, 0.014, 0.0141, 0.0193, 0.0113, 0.0082, 0.0097])

如果想要将这些值求和,一个一个地取出然后相加是一种办法,但是有简单快捷地方法吗?

有!是可以直接对这些值进行求和的(这一点是与列表一样的):

sum(BirthAndDeath['birth'].values())

 

0.139

也可以先将其转换为列表类型,然后求和:

aa = list(BirthAndDeath['birth'].values())
print(aa[0])

 

0.0121
sum(aa)
0.139

结果一致!

另外,还有一种方法获取键、值:

for key,value in BirthAndDeath['birth'].items():
    print(key,"--",value)
Mandarin -- 0.0121
English -- 0.0136
Spanish -- 0.0206
Hindi -- 0.0161
Russian -- 0.014
Portuguese -- 0.0141
Bengali -- 0.0193
French -- 0.0113
Japanese -- 0.0082
German -- 0.0097

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨小古

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值