数据容器之字典

数据容器-字典

  • 字典的定义,同样使用{ },不过存储的元素是一个个的键值对,如下:

    • 使用{ }存储元素,一个元素是一个键值对

    • 每一个键值对包含Key和Value(用冒号分隔)

    • 键值对之间使用逗号分隔

    • Key和Value可以是任意类型的数据(key不可为字典)

    • Key不可重复,重复会对原有数据覆盖

    • 字典不可用下标索引,而是通过Key检索Value

# 定义字典字面量:{key:value,key:value,......,key:value}
# 定义字典变量:
# my_dict = {key: value, key: value,......, key: value}
# 定义空字典
my_dict = {}  # 空字典定义方式1
n_dict = dict()  # 空字典定义方式2

# 记录学生成绩
stu_score = {"zhang": 99, "wang": 98, "li": 97}
# 字典同集合一样,不可以使用下标索引,但是字典可以通过Key值来取得对应的Value
print(stu_score["zhang"])
# 嵌套
# 字典的Key和Value可以是任意数据类型(Key不可为字典),所以字典是可以嵌套的

# 需求如下:记录学生各科的考试信息,字典可以里面嵌套字典,key值不能为字典
stu_score = {"zhang": {"语文": 90, "数学": 88, "英语": 95}, "wang": {"语文": 80, "数学": 89, "英语": 70},
             "li": {"语文": 70, "数学": 91, "英语": 65}}

# 增加可读性
stu_score = {
    "zhang": {"语文": 90, "数学": 88, "英语": 95},
    "wang": {"语文": 80, "数学": 89, "英语": 70},
    "li": {"语文": 70, "数学": 91, "英语": 65}
}

# 嵌套字典的读取
print(stu_score["zhang"])            # {'语文': 90, '数学': 88, '英语': 95}
print(stu_score["wang"]["数学"])      # 89

相关操作

  1. 新增元素
# 	语法:字典[Key] = Value,结果:字典被修改,新增了元素
stu_score = {"zhang": 99, "wang": 98, "li": 97}
stu_score["yang"] = 89
print(stu_score)  # {'zhang': 99, 'wang': 98, 'li': 97, 'yang': 89}
  1. 更新元素

    # 	语法:字典[Key] = Value,结果:字典被修改,元素被更新
    # 	注意:字典Key不可以重复,所以对已存在的Key执行上述操作,就是更新Value值
    stu_score = {
        "zhang": 99,
        "wang": 98,
        "li": 97
    }
    stu_score["li"] = 90  # 更新li对应的value值
    print(stu_score)
    --------------------------------------------------------
    # 我们可以利用更新语句创建新的字典
    # 假设我们有一个列表:
    list1 = ['z', 'h', 'k']
    # 定义一个空字典
    dict1 = {}
    for i in range(len(list1)):    
        dict1[i] = list1[i]
    print(dict1)      # {0: 'z', 1: 'h', 2: 'k'}
    
    
    
  2. 删除元素

# 	语法:字典.pop(Key),结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除
stu_score = {
    "zhang": 99,
    "wang": 98,
    "li": 97
}
value = stu_score.pop("li")  # 获得指定Key的Value
print(value)    # 97
print(stu_score)  # 字典被修改,{'zhang': 99, 'wang': 98}
  1. 清空字典

    # 	语法:字典.clear(),结果:字典被修改,元素被清空
    stu_score = {
        "zhang": 99,
        "wang": 98,
        "li": 97
    }
    stu_score.clear()  # 字典被修改,元素被清空,结果:{}
    print(stu_score)
    
  2. 获取字典中所有的key

    # 	语法:字典.keys(),结果:得到字典中的全部Key
    stu_score = {
        "zhang": 99,
        "wang": 98,
        "li": 97
    }
    keys = stu_score.keys()
    print(keys)  # 结果dict_keys(['zhang', 'wang', 'li'])
    
  3. 遍历字典

    # 	语法1:for key in 字典.keys():
    #   语法2:for key in 字典:        # 临时变量key名字随意取,与语法一相比更加的简洁,结果一样
    stu_score = {
        "zhang": 99,
        "wang": 98,
        "li": 97
    }
    keys = stu_score.keys()
    for i in keys:  # 只能for循环,字典不支持下标索引
        print(f"姓名:{i},成绩:{stu_score[i]}")
    
  4. 计算字典中键值对的数量

    # 	语法:len(字典)
    # 	结果:得到一个整数,表示字典内元素(键值对)的数量
    stu_score = {
        "zhang": 99,
        "wang": 98,
        "li": 97
    }
    print(len(stu_score))  # 得到字典内元素(键值对)的数量
    
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值