19数据容器---元组

元组

创建元组

  • 元组和列表类似,但属于不可变序列元组一旦创建,用任何方法都不可以修改其元素
  • 元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号“()”中,而不是方括号中。
  • 元组没有列表中那么多方法可以使用,因为不可变,所以安全,速度比列表快。
# 使用 tuple() 创建元组
>>>tuple()
()

# 使用 () 创建元组
>>> ()
()

>>> type(())
tuple
>>> type(tuple())
tuple

元组中只包含一个元素时,需要在元素后面添加逗号

info_tuple = (50, )

元组取值与切片

  • 元组的取值、切片与列表时一样使用

  • 不能对元组的元素进行删除,但是可以删除整个元组:

In [1]: t = tuple("01234")

In [2]: t
Out[2]: ('0', '1', '2', '3', '4')

# 直接获取
In [3]: t[0]
Out[3]: '0'

In [4]: t[-1]
Out[4]: '4'
# 不能修改
In [5]: t[0] = 1
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-c8aeb8cd20ae> in <module>
----> 1 t[0] = 1

TypeError: 'tuple' object does not support item assignment

In [6]: t[0:5]
Out[6]: ('0', '1', '2', '3', '4')

元组常用操作

  • ipython 中定义一个 元组,例如:info = ()
  • 输入 info. 按下 TAB 键,ipython 会提示 元组 能够使用的函数如下:
info.count  info.index

循环遍历

  • 取值 就是从 元组 中获取存储在指定位置的数据
  • 遍历 就是 从头到尾 依次元组 中获取数据
# for 循环内部使用的变量 in 元组
for item in info:
    # 循环内部针对元组元素进行操作
    print(item)
  • Python 中,可以使用 for 循环遍历所有非数字型类型的变量:列表元组字典 以及 字符串

元组和列表之间的转换

  • 使用 list 函数可以把元组转换成列表
list(元组) 
  • 使用 tuple 函数可以把列表转换成元组
tuple(列表)

元组解包

序列类型

In [7]: a, b, c = tuple('abc')

In [8]: a
Out[8]: 'a'

In [9]: b
Out[9]: 'b'

In [10]: c
Out[10]: 'c'
    
# 用 _ 收集不用的元组
In [15]: _, _, c = tuple('abc')

In [16]: c
Out[16]: 'c'

_ 是被舍弃的变量

元组与列表的区别

  • 元组一旦定义就不允许更改。
  • 元组没有append()extend()insert()等方法,无法向元组中添加元素。
  • 元组没有remove()pop()方法,也无法对元组元素进行del操作,不能从元组中删除元素。
  • 从效果上看,tuple( )冻结列表,而list( )融化元组。

元组的优点

  • 元组的速度比列表更快。如果定义了一系列常量值,而所需做的仅是对它进行遍历,那么一般使用元组而不用列表。
  • 元组对不需要改变的数据进行 “写保护” 将使得代码更加安全
  • 元组可用作字典的“键”,也可以作为集合的元素列表永远不能当做字典键使用,也不能作为集合的元素,因为列表不是不可变的。

元组的缺点

不可修改

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。