2020/11/10 Python基础学习课程七:元组和字典

七、元组和字典

1、可变对象和不可变对象

  • 例:a = 3,a是一个变量,而3就是一个对象,对象中保存了三个数据,id(地址),type(类型),value(值)
  • 可变对象和不可变对象指的就是对象中的值是否可以改变
  • 可变对象:例如列表,字典等;不可变对象:例如元组,字符串等
  • (补充:之前学过的==,!=比较的是值是否相等,is 和 is not比较的是id是否相等

2、元组

2.1 元组的基本定义
  • 定义:元组类型是tuple,属于不可变序列,使用()来创建

(注意元组的创建至少要包含一个,否则无法创建成功;并且可省略()去表示)

2.2 元组的解包
  • 用对应数量的变量可以获取对应的元组数据(若变量不够会报错)

  • 若变量不够或想要一个变量获取多个元组的数据,可用以下方法

    (一次只能有一个变量前加)

3、字典

3.1 字典的基本定义
  • 定义:字典使用的是一种叫映射(mapping)的数据结构,它与列表类似,都是用来存储数据,但字典的查询性能很强,而列表相对的存储性能强
  • 结构:字典里的元素(value)都有一个与之相对应的名字(key),称之为键值对(key-value)结构;字典包含多个键值对,而每一个键值对又称为一项(item),我们可以通过key快速查找到value
  • 语法:字典用{}来创建,形式为{key:value,key:value,……},字典的value任意且可变,而key则任意不可变,且key不能重复否则后面的会替换前面的
    (字典通过key来获取数据)
    在这里插入图片描述
3.2 字典的使用
  • 使用dict()函数来创建函数:字典除了直接用{key:value,……}来创建也可以用dict(key=value,……)函数来创建
    在这里插入图片描述
    dict()函数可以将一个包含双值子序列的序列转化为字典:双值序列,指序列中只有两个值,例如’sk’,(1,2),[1,2]等;子序列,序列中的元素也是个序列,里面这个序列就叫子序列
  • (使用字典[key]来获取字典中的元素时,key要加上’ ',否则系统会把它当变量;若key不存在则会报错)
  • get(key,[default])方法:这个方法也可以用来获取字典中的数据,若不设置[default],则会返回None;若设置[default],获取不到key,则会返回这个值
    在这里插入图片描述
  • 修改字典:字典[key]=value
    在这里插入图片描述
    (若输入字典中不存在的key和value则会直接添加进字典中)
    在这里插入图片描述
  • setdefault(key,value)方法:若字典中已经有这个key,则返回key的值对字典不做任何操作;若key不存在,则会在字典中添加这个key-value
    在这里插入图片描述
  • update():方法: 将其他字典里的数据添加进原字典
    在这里插入图片描述
  • 删除key-value方法: del 字典[key]或者 字典.pop(key,[default])(value作为返回值)
    在这里插入图片描述
  • popitem()方法:删除字典中最后一个k- value,并把它作为返回值
    在这里插入图片描述
  • clear()方法:清空字典
    在这里插入图片描述
3.3 遍历字典
  • keys()方法:返回一个序列包含字典中所有的key值
  • values()方法:返回一个序列包含字典中所有的value值
  • items()方法:返回一个序列包含字典里的所有双值子序列,双值就是每个key和value
    在这里插入图片描述
    (items()方法可以通过赋值给不同变量分别提取字典中的key和value)
    在这里插入图片描述
3.4 copy()
  • 潜复制:x.copy()方法,潜复制两者值相等但对象不同,改变其中一个另一个不变(类似抄作业,你抄了然后改,我是没改的)

    (注意如果序列里还有序列,则潜复制不会复制它,就是说里序列两者还是同一个对象,会一起改变)
  • 深复制:需要用到copy这个库函数,深复制会将序列及其内部的序列完全复制,成为两个值相同的对象

4、集合

4.1 集合的简介
  • 定义:集合的表现形式是set,与列表十分相似
    不同点:
            o 集合只能存储不可变对象
            o 集合中存储的对象是无序的
            o 集合中不能出现重复元素
  • 语法:使用{}来直接创建集合或用set()来将列表和字典转化为集合

    (set()将字典转化为集合时只会保留字典中的key)
4.2 字典的使用
  • len():获取集合中元素的数量
  • add():给集合添加一个元素
  • update():将一个集合中的元素添加到另一个集合中
    在这里插入图片描述
  • pop():随机消去集合中的一个元素,一般是最后一个,并有返回值
  • remove():删去指定的集合中的元素
  • clear():清空集合
  • in 和not in:用来判断元素是否在集合内
4.3 集合的运算
  • & 交集运算
  • | 并集运算
  • - 差集运算
  • ^亦或集
  • <= 检查⼀个集合是否是另⼀个集合的⼦集
  • < 检查⼀个集合是否是另⼀个集合的真⼦集
  • >=检查⼀个集合是否是另⼀个集合的超集
  • >检查⼀个集合是否是另⼀个集合的真超集
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值