05-01元组

元组

特性:

  • 元组的最大特性是不可变。
  • 不可变意味着可hash, 意味着可以做字典的key, 可以做set的元素。
  • 函数时,元组的作用更强大。

元组对象操作

针对元组对象本身做的操作

新建元组

方法1:t = tuple()
方法2:t = ()
方法3:t = (1, 2, 3) # 直接赋值
方法4:t = tuple(range(3))

删除元组对象

需要使用del方法删除
截至2020年5月23日,本人暂时还未发现其他的方法

In [1]: t = ()                                                                                                                                                                    

In [2]: type(t)                                                                                                                                                                   
Out[2]: tuple

In [3]: del t 

元组元素操作

元组是不可变的, 所以只有查询方法

查询

通过下标查询

  • 超出范围, 会报错IndexError。
  • 同样支持负数取值。
  • 不支持赋值, 元组是不可变的。
In [5]: t[0]   
Out[5]: 0

In [6]: t[4]    # 超出范围,报错IndexError
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-6-302761d4dd84> in <module>()
----> 1 t[4]

IndexError: tuple index out of range

In [7]: t[-1]   # 同样支持负数取值
Out[7]: 2

In [8]: t[0] = 3   # 不支持赋值, 元组是不可变的
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-d7bb3c58ee7f> in <module>()
----> 1 t[0] = 3

TypeError: 'tuple' object does not support item assignment

总结:
    1、超出范围, 会报错IndexError。
    2、同样支持负数取值。
    3、不支持赋值, 元组是不可变的。

tuple.index通过值查找索引

tuple.index方法和list.index方法一致,通过值查找索引
不存在的抛ValueError

In [10]: t.index(2)   # 查找2在第几个index
Out[10]: 2

In [11]: t.index(3)   # 不存在的抛ValueError
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-11-bbaa43d3e6ff> in <module>()
----> 1 t.index(3)

ValueError: tuple.index(x): x not in tuple

总结:
    1、不存在的抛ValueError

tuple.count统计值在元组中出现的个数

tuple.count和list.count方法表现一致

In [12]: t.count(2)  
Out[12]: 1

In [13]: t.count(10)    # 统计不存在的值为零
Out[13]: 0

总结元组特性:
元组的最大特性是不可变。
不可变意味着可hash, 意味着可以做字典的key, 可以做set的元素。
函数时,元组的作用更强大。
posted @ 2020-05-25 23:08  此时  阅读(130)  评论(0编辑  收藏  举报