Python笔记(八)

数据容器:dict(字典、映射)

字典的定义

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

 # 定义字典字面量
 {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码值

每一个字符都能对应上一个:数字的码值

字符串进行比较就是基于数字的码值大小进行比较的

字符串比较:

字符串是按位比较,也就是一位位进行对比,只要有一位大,那么整体就大

笔记来源:哔哩哔哩"黑马程序员",若有侵权删

你可能感兴趣的:(python,开发语言)