Python 数据容器(4) - dict(字典、映射)

为什么需要字典

当需要记录一份类似学生的姓名和考试的总成绩的时候,使用字典最为合适:可以通过key(学生姓名),取到对应的value(考试成绩)。字典可以实现用key取出value的操作。

字典的定义

同样使用{},不过存储的元素是一个个的:键值对,如下语法:

# 定义字典字面量
{key:value, key:value, ....., key:value}
# 定义字典变量
 my_dict = {key:value, key:value, ....., key:value}
# 定义空字典
 my_dict = {}
 my_dict = dict{}
  • 使用{}存储原始,每一个元素是一个键值对
  • 每一个键值对包含key和value(用冒号分隔)
  • 键值对之间使用逗号分隔
  • key和value可以是任意类型的数据(key不可为字典)
  • key不可以重复,重复会对原数据覆盖
字典数据的获取

字典同集合一样,不可以使用下标索引,但是字典可以通过key值取得对应的value

# 语法,字典[key]可以取到对应的value
stu_score = {"zhangsan":99, "lisi":95, "wangwu":88}
print(stu_score["zhangsan"])
print(stu_score["lisi"])
print(stu_score["wangwu"])
# 结果:99 95 88
嵌套字典的内容获取
stu_score = {
		"zhangsan":{"语文":88, "数学":99,"英语"99}
		"lisi":{"语文":58, "数学":59,"英语"69}
		"wangwu":{"语文":48, "数学":99,"英语"19}
}
print(stu_score["zhangsan"]) 结果:{"语文":88, "数学":99,"英语"99}
print(stu_score["zhangsan"]["数学"]) 结果:99
字典的常用操作
新增元素
 # 语法:字典[key] = Value, 结果:字典被修改,新增了元素
stu_score = {
    "zhangsan": 96,
    "lisi": 11,
    "wangwu": 88
}
stu_score["zhangfei"] = 77
print(stu_score)
# 结果:{'zhangsan': 96, 'lisi': 11, 'wangwu': 88, 'zhangfei': 77}

更新元素
# 语法:字典[key] = value, 结果:字典被修改,元素被更新
stu_score = {
    "zhangsan": 96,
    "lisi": 11,
    "wangwu": 88
}
stu_score["lisi"] = 100
print(stu_score)
# 结果:{'zhangsan': 96, 'lisi': 100, 'wangwu': 88}

删除元素
# 语法:字典.pop[key],结果:获取指定key的value,同时字典被修改,指定key的数据被删除
stu_score = {
    "zhangsan": 96,
    "lisi": 11,
    "wangwu": 88
}
value = stu_score.pop("lisi")
print(value)
print(stu_score)
# 结果:11
# {'zhangsan': 96, 'wangwu': 88}

清空字典
# 语法:字典.clear(),结果:字典被修改,元素被清空
stu_score = {
    "zhangsan": 96,
    "lisi": 11,
    "wangwu": 88
}
stu_score.clear()
print(stu_score)
# 结果:{}

获取全部的key
# 语法:字典.keys(),结果:得到字典的全部key
stu_score = {
    "zhangsan": 96,
    "lisi": 11,
    "wangwu": 88
}
keys = stu_score.keys()
print(keys)
# 结果:dict_keys(['zhangsan', 'lisi', 'wangwu'])

遍历字典
# for key in 字典.keys()
stu_score = {
    "zhangsan": 96,
    "lisi": 11,
    "wangwu": 88
}
keys = stu_score.keys()
for key in keys:
    print(f"学生:{key},分数:{stu_score[key]}")

#结果:
# 学生:zhangsan,分数:96
# 学生:lisi,分数:11
# 学生:wangwu,分数:88

注意:字典不支持下标索引,所以同样不可以用while循环便利

计算字典全部元素数量
# 语法:len(字典) 结果:得到一个整数,表示字典内元素的数量
stu_score = {
    "zhangsan": 96,
    "lisi": 11,
    "wangwu": 88
}
num=len(stu_score)
print(num)
# 结果:3

字典的常用操作总结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值