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码值

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

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

字符串比较:

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

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

  • 26
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值