字典的定义,同样使用{},不过存储的元素是一个个的:键值对,如下语法:
# 定义字典字面量 {key:value,key:value,……,key:value} # 定义字典字面量 mt_dict={key:value,key:value,……,key:value} # 定义空字典 my_dict={} # 空字典定义方式1 my_dict={} # 空字典定义方式2
字典数据的获取
字典同集合一样,不可以使用下标索引
但是字典可以通过key值来取得对应的Value
# 语法,字典[key]可以取到对应的Value stu_score={"王力鸿":99,"周杰轮":88,"林俊节":77} print(stu_score["王力鸿"]) # 结果99 print(stu_score["周杰轮"]) # 结果88 print(stu_score["林俊节"]) # 结果77
字典的嵌套
字典的Key和Value可以是任意数据类型(Key不可为字典)但Value可为字典
那么,就表明,字典是可以嵌套的
语法:字典[Key]=Value,
结果:字典被修改,新增了元素
stu_score={ "王力鸿":77, "周杰轮":88, "林俊节":99 } # 新增,张学油的考试成绩 stu_score['张学油']=66 print(stu_score) #结果:{"王力鸿":77,"周杰轮":88,"林俊节":99,"张学油":66}
更新元素
语法:字典[Key]=Value,
结果:字典被修改,元素被更新
注意:字典Key不可以重复,所以对已存在的Key执行上述操作,就是更新Value值
stu_score={ "王力鸿":77, "周杰轮":88, "林俊节":99 } # 更新,王力鸿的考试成绩 stu_score["王力宏"]=100 print(stu_score) #结果:{"王力鸿":100,"周杰轮":88,"林俊节":99}
删除元素
语法:字典.pop(Key)
结果:将获得指定Key的Value,同时字典被修改,指定Key的数据被删除
stu_score={ "王力鸿":77, "周杰轮":88, "林俊节":99 } value=stu_score.pop("王力鸿") print(value) # 结果:77 print(stu_score) # 结果:{"周杰轮":88,"林俊节":99}
清空字典
语法:字典.clear()
结果:字典被修改,元素被清空
stu_score={ "王力鸿":77, "周杰轮":88, "林俊节":99 } stu_score.clear() print(stu_score) # 结果:{}
获取全部的key
语法:字典.keys()
结果:得到字典中的全部Key
stu_score={ "王力鸿":77, "周杰轮":88, "林俊节":99 } Keys=stu_score.keys() print(kesy) # 结果:dict_keys(['王力鸿','周杰轮','林俊节'])
字典的遍历
for key in keys: print(f"字典的Key是:{key}") print(f"字典的value是:{stu_score[key]}")
方式2
for key in stu_score: print(f"字典的Key是:{key}") print(f"字典的value是:{stu_score[key]}")
统计字典的元素数量
语法:len(字典)
字典[Key] | 获取指定的Key对应的Value值 |
---|---|
字典[Key]=Value | 添加或更新键值对 |
字典.pop(key) | 取出Key对应的Value并在字典内删除此Key的键值对 |
字典.clear() | 清空字典 |
字典.keys() | 获取字典的全部key,可用于for循环遍历字典 |
len(字典) | 计算字典内的元素数量 |
数据容器的分类
是否支持下标索引:
支持:列表、元组‘字符串-序列类型
不支持:集合、字典-非序列类型
是否支持重复元素:
支持:列表、元组、字符串-序列类型
不支持:集合、字典-非序列类型
是否可以修改:
支持:列表、集合、字典
不支持:元组、字符串
列表 | 元组 | 字符串 | 集合 | 字典 | |
---|---|---|---|---|---|
元素数量 | 支持多个 | 支持多个 | 支持多个 | 支持多个 | 支持多个 |
元素类型 | 任意 | 任意 | 仅字符 | 任意 | Key:Value Key:除字典外任意类型 Value:任意类型 |
下标索引 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
重复元素 | 支持 | 支持 | 支持 | 不支持 | 不支持 |
可修改性 | 支持 | 不支持 | 不支持 | 支持 | 支持 |
数据有序 | 是 | 是 | 是 | 否 | 否 |
使用场景 | 可修改、可重复的 一批数据记录场景 | 不可修改、可重复 的一批数据记录场景 | 一串字符的 记录场景 | 不可重复的 数据记录场景 | 以Key检索Value的 数据记录场景 |
在遍历上:
5类数据都支持for循环遍历
列表、元组、字符串支持while循环,集合、字典不支持(无法下标索引)
len(容器) | 统计容器的元素个数 |
---|---|
max(容器) | 统计容器的最大元素 |
min(容器) | 统计容器的最小元素 |
除了下标索引这个共性外,还可以通用类型转换
list(容器) | 将给定容器转换为列表 |
---|---|
str(容器) | 将给定容器转换为字符串 |
tuple(容器) | 将给定容器转换为元组 |
set(容器) | 将给定容器转为集合 |
通用排序功能
sorted(容器) 正向排序
sorted(容器,[reverse=Truel]) 反向排序
将给定容器进行排序,排序的结果都变为了列表对象
ASCII码表
在程序中,字符串所用的所有字符如:
大小写2英文单词
数字
特殊符号
都有其对应的ASCII码值
每一个字符都能对应上一个:数字的码值
字符串进行比较就是基于数字的码值大小进行比较的
字符串比较:
字符串是按位比较,也就是一位位进行对比,只要有一位大,那么整体就大
笔记来源:哔哩哔哩"黑马程序员",若有侵权删