4.2 元组

元组(tuple)

元组是一个不可变的序列
其操作方式基本上和列表是一致的(唯一区别:元组不可变,列表可变)
在操作元组时,就把元组当做是一个不可改变的列表就ok了
一般希望数据不改变时,就使用元组,其余情况都使用列表

创建元组

用()创建
    my_tuple = () # 创建了一个空元组
    my_tuple = (1,2,3,4,5) # 创建了一个5个元素的元组
元组为不可变对象,一旦创建就不能改变
当元组为非空元组时,括号可以省略
    例: my_tuple = 10,20,30,40,50
         my_tuple = 10,20,
如果元组不是空元组,那么它里面至少要有一个逗号",",为的是跟整型区分开,如:
    my_tuple = 30 ---> type(my_tuple)---> int
    my_tuple = (30) ---> type(my_tuple)---> int
    my_tuple = 30, ---> type(my_tuple)---> tuple
    my_tuple = (30,) ---> type(my_tuple)---> tuple
元组的解包(解构)
    解包:将元组当中的每一个元素分别赋值给一个变量
      不仅仅有元组,其实序列都可以解包
    例:my_tuple = 10,20,30,40
        a,b,c,d = my_tuple
        ---> a=10, b=20, c=30, c=40
    解包的应用:变量值互换
        a = 100
        b = 200
        a, b = b, a  --->即可实现变量值的互换
        (其实等号右边的b,a 相当于省去括号的元组)
    在对一个元组解包时,变量的数量必须和元组的元素数量一致
    也可以在变量前边添加一个*,这样该变量将获取元组中所有剩余的元素
    (剩下所有的元素将组成一个列表)
      不能出现两个及以上带*的变量
    例子: my_tuple = 10,20,30,40
        a, b, *c = my_tuple ---> a = 10, b = 20, c= [30, 40]
        a, *b, c = my_tuple ---> a = 10, b = [20, 30], c= 40
        *a, b, c = my_tuple ---> a = [10, 20], b = 30, c= 40

可变对象

- 每个对象均包含三个部分:
    id (标识) ---> id不可变
    type (类型)
    value (值) ---> 可变对象的value可以改变,不可变对象的value不可以改变
- 列表就是一个可变对象
    a = [1, 2, 3]
- a[0] = 10 (改对象)
    - 这个操作是在通过变量a去改变对象的值
    - 这个操作不会改变变量a所指向的对象
    - 当我们去修改对象时,若有其他变量也指向该对象,则对象的改变也在那些变量中体现
        例:a = [1, 2, 3]
            b = a  # a和b均指向同一个对象
            a[0] = 10  # 通过变量a去改变对象的值
            --->  a = [10, 2, 3]   b = [10, 2, 3]
- a = [4, 5, 6] (改变量)
    - 这个操作是在给变量重新赋值
    - 这个操作改变了变量a所指向的对象
    - 为一个变量赋值时,不会影响到其他变量(不管这些变量是否指向同一个对象)

== 和 is 的区别

== 和 != 比较的是对象的value(值)是否相等
is 和 is not 比较的是对象的id(内存地址)是否相等
(is 和 is not 要求更苛刻,即a == b并不意味a is b,但是 a is b 一定有 a == b)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值