元组

作者: qjh_py | 来源:发表于2020-04-23 15:30 被阅读0次

目录

  1. 元组基本介绍
  2. 可变对象
  3. 元组和列表的区别
  4. 元组的解包(Unpacking)

1. 元组基本介绍

  • 元组表现形式tuple
  • 元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表)
  • 使用()创建元素
  • 元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括号可以省略
  • 元组解包指将元组当中的每一个元素都赋值给一个变量

总结:被束缚的列表。不能修改,标志是逗号。

2. 可变对象

Python中,数值类型(int和float)、字符串str、元组tuple都是不可变类型。而列表list、字典dict、集合set是可变类型
可变对象中都保存了三个数据
• id(标识)
• type(类型)
• value(值)

3. 元组和列表的区别

3.1元组与列表相同的操作:

  • 使用方括号加下标访问元素
  • 切片(形成新元组对象)
  • count()/index()/len()/max()/min()/tuple()
  • 元组的拼接,乘法运算

3.2 元组的特别之处

  • 不能被修改:
    比如我们记录了某人的身份证号,那么我们将不允许它被修改了。这样就比较安全。这就是元组的用处了。

但这也不是绝对滴!

元组只保证它的一级子元素不可变,对于嵌套的元素内部,不保证不可变!

>>> tup = ('a', 'b', ['A', 'B'])
>>> tup[2][0] = 'X'
>>> tup[2][1] = 'Y'
>>> tup 
('a', 'b', ['X', 'Y'])

所以,在使用元组的时候,请尽量使用数字、字符串和元组这种不可变的数据类型作为元组的元素,这样就能确保元组不发生变化。

4. 元组的解包(Unpacking)

Python中如果要初始化多个变量,可以用下面的方式:

>>> a,b,c,d = 1,2,3,4
>>> a,b,c,d
(1, 2, 3, 4)

以上代码给a,b,c,d分别赋值1,2,3,4,这时候a是1,b是2,c是3,d是4

还有更绝的解包方法,那就是用星号*来吸收多余的元素:

>>> x = (1,2,3,4,5)

>>> a, *b = x # x有5个元素,左边变量只有两个,多余的都被带*的b吸收了
>>> a, b
(1, [2, 3, 4, 5])

>>> a, *b, c = x 
>>> a,b,c
(1, [2, 3, 4], 5)

>>> *a, b, c = x
>>>  a,b,c
([1, 2, 3], 4, 5)

>>> a,b,c = x #没有带*的,x的5个元素无法匹配3个变量
---------------------
ValueError     Traceback (most recent call last)
<ipython-input-153-58e3b82a91cc> in <module>
----> 1 a,b,c = x

ValueError: too many values to unpack (expected 3)

相关文章

  • Python入门:元组

    六、元组 6.1 定义元组 元组和列表相似,列表是[---],元组是(---) 6.2 访问元组 6.3 修改元组...

  • Python 元组

    元组的创建和删除 访问元组元素 修改元组元素 元组推导式 元组与列表的区别

  • python入坑第七天|元组

    废话不多说,今天来学习元组。内容如下: 元组的创建 索引、切片 元组的连接 元组的不可修改性 元组内置函数 元组的...

  • Python元组

    python元组元组和列表的区别在于元组中的元素不能修改 创建元组创建元组用() tuple = ()当元组里只包...

  • Python_4_内置结构-元组-字符串

    1. 元组概念1.1. 元组的特点1.2. 元组的定义1.3. 元组的访问1.4. 元组的查询 2. 命名元组 3...

  • Swift 元组 (Tuple)

    定义元组 获取元组内容 修改元组 元组分解 元组作为函数返回值 通常可以用元组来为函数返回多个返回值。

  • 13、Python集合(set)

    上集回顾: 元组(tuple)定义 元组注意事项 元组妙用 上集学习了元组相关知识,元组和列表类似,但是不能修改。...

  • 3.元组Tuple

    目录0.元组介绍1.元组定义和初始化2.元组元素访问3.命名元组namedtuple 0.元组介绍 元组是不可变对...

  • swift 元组 (Tuple)

    元组的声明 输出结果 元组解包 输出结果 元组的分量 输出结果 命名元组分量 输出结果 使用_忽略元组分量

  • 元组

    目录 元组基本介绍 可变对象 元组和列表的区别 元组的解包(Unpacking) 1. 元组基本介绍 元组表现形式...

网友评论

      本文标题:元组

      本文链接:https://www.haomeiwen.com/subject/jdzoihtx.html