python之元组tuple
Python中的元组,元组中包含的数据类型不必一致
>>> t = ('as', 12, 1.2)
>>> t
('as', 12, 1.2)
>>>
元组是静态的,长度大小固定,无法增加删减或者改变(immutable)
>>> t = (1, 2, 3, 4)
>>> t[0] = 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>
对元组的某个元素进行修改操作,Python 就会报错,原因就是元组是不可变的。
如果想对已有的元组做任何”改变”,此时只能重新开辟一块内存,创建新的元组了
>>> t = (1, 2, 3, 4)
>>> t
(1, 2, 3, 4)
>>> new_t = t + (5,)
>>> new_t
(1, 2, 3, 4, 5)
>>> t
(1, 2, 3, 4)
>>>
我们想增加一个元素 5 给元组,实际上就是创建了一个新的元组,然后把原来两个元组的值依次填充进去。
元组也支持负数索引,,-1 表示最后一个元素,-2 表示倒数第二个元素,以此类推。
>>> t = (1, 2, 3)
>>> t
(1, 2, 3)
>>> t[-1]
3
>>>
元组也支持切片操作,
>>> t = (1, 2, 3)
>>> t
(1, 2, 3)
>>> t[1:3] # 返回元组中索引从1到3(不包括3)的子元组
(2, 3)
>>>
元组也可以随意嵌套
>>> tup = ((1, 2, 3), (4, 5, 6), [1, 2]) # 元组的三个元素分别为元组、元组、list
>>> tup
((1, 2, 3), (4, 5, 6), [1, 2])
>>>
元组可以通过list()转换为列表
>>> tup = ((1, 2, 3), (4, 5, 6), [1, 2])
>>> tup
((1, 2, 3), (4, 5, 6), [1, 2])
>>> list(tup)
[(1, 2, 3), (4, 5, 6), [1, 2]]
>>>
元组常用的内置函数主要有count(),index(),sorted(),reversed():
count(item) 表示统计元组中 item 出现的次数。
index(item) 表示返回元组中 item 第一次出现的索引。
reversed() 和 sorted()表示对 元组进行倒转和排序,reversed() 返回一个倒
转后的迭代器(可使用 list() 函数再将其转换为列表);sorted() 返回排好序的新
列表。
>>> t = (1, 2, 3, 3, 5)
>>> t.count(3)
2
>>> t.count(4)
0
>>>
>>> t.index(5)
4
>>> reversed(t)
<reversed object at 0x00000284CB665FA0>
>>> list(reversed(t))
[5, 3, 3, 2, 1]
>>> t
(1, 2, 3, 3, 5)
>>> sorted(t)
[1, 2, 3, 3, 5]
>>> t
(1, 2, 3, 3, 5)
>>>
由于元组的长度大小是固定的,元素不可变,所以其存储空间是固定的。
还没有评论,来说两句吧...