元组
元组:简单理解就是固定长度,不可变的列表
元组创建
元组的创建主要有如下几种方式:
(1)逗号分隔:tup = 4,5,6
(2)圆括号:tup = (4,5,6)
(3)利用任意的序列或者迭代器转换成元组:tuple([1,2,3]); tuple('string')
tup1 = 4,5,6
tup2 = (7,8,9)
tup3 = tuple([1,2,3,4])
tup4 = tuple('hello world')
print(tup1, type(tup1))
print(tup2, type(tup2))
print(tup3, type(tup3))
print(tup4, type(tup4))
>>>(4, 5, 6) <class 'tuple'>
(7, 8, 9) <class 'tuple'>
(1, 2, 3, 4) <class 'tuple'>
('h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd') <class 'tuple'>
元组的索引
元组不能改变,因此它无法增、删(删除某一个元素)、改,但是它能够查/被索引,同时也能被整体删除:
(1)通过索引来获取元组中的元素:此时的返回值依然是一个元组
tup[:-1]
tup[1]
(2)删除整个元组,使用del语句
del tup
tup = tuple('hello world')
print(tup[:-1])
print(tup[1])
del tup
print(tup)
>>>('h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l')
e
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-9-e2a83b3a252f> in <module>
4
5 del tup
----> 6 print(tup)
NameError: name 'tup' is not defined
元组的连接:
(1)通过使用'+'可以将多个元组进行连接,最后会生成一个新的元组
(1,2,3)+tuple(['foo',[66,77]])+('string',1)
tup1 = (1,2,3)
tup2 = tuple(['foo',[66,77]])
tup3 = ('hello', 99)
res = tup1+tup2+tup3
print(res) >>>(1, 2, 3, 'foo', [66, 77], 'hello', 99)
元组的拷贝:
使用 * 可以进行元组的拷贝,如下生成4分拷贝,但是对象自身并没有复制,而是生成了一个新的元组
('foo',2) * 4
tup = ('foo', 89.9, 90)
res = tup * 4
print(tup)
print(res)
----------------------------------------
('foo', 89.9, 90)
('foo', 89.9, 90, 'foo', 89.9, 90, 'foo', 89.9, 90, 'foo', 89.9, 90)
元组型表达式赋值给变量
这种方式常用在遍历元组列表组成的序列中
tup=(4,5,6)
a, b, c = tup
高级用法:*rest
python增加了更为高级的元组拆包功能,用于从元组的起始位置采集一些元素,这里主要关注两个用法:
(1)*rest:用于在函数调用时获取任意长度的位置参数列表,返回值是一个列表
(2)*_:如果rest是你不想要的数据,那么可以使用*_表示。
values = 1,2,3,4,5
a, b, *rest = values
values = (1,2,3,4,5)
a, *rest, c = values
print(a, c)
print(type(rest))
print(rest)
---------------------------------------
1 5
<class 'list'>
[2, 3, 4]
元组的常用方法
(1)tuple.count(value):计算元组某个元素的个数
tup = (1,2,3,2,2,2,5,6)
tup.count(2)
>>>4
元组常用的内置函数
tup = (1,2,3,2,2,2,5,6)
len(tup)
max(tup)
min(tup)
sum(tup)
网友评论