《元组》
什么是元组,元组的理解成一个不可进行更改的列表,换个理解方式,如列表申请的元素,可以看见并进行修改等一定的高级操作,但是元组不一样它更像申请了一张可视的图片,可以观测元素,但不能对其更改。
元组的申请
>>> tuple = (1,2,3,4,5,6,7) #元组
>>> number = [1,2,3,4,5,6,7] #列表
>>> tuple
(1, 2, 3, 4, 5, 6, 7)
>>> number
[1, 2, 3, 4, 5, 6, 7]
发现不同的地方了吗,没错,就是元组的申请方式与列表的申请方式不一样,主要在包含元素的操作符上,在大部分的申请方式中区别元组与列表的方式,只要是看:创建元组用的是小括号,创建列表用的是中括号。
访问元组
访问元组的方式与列表是一样的
如
>>> tuple
(1, 2, 3, 4, 5, 6, 7)
>>> tuple[1]
2
也可以用切片的方式哦(切它!!!)
>>> tuple[:]
(1, 2, 3, 4, 5, 6, 7)
>>> tuple[1:5]
(2, 3, 4, 5)
>>> tuple[1:]
(2, 3, 4, 5, 6, 7)
现在天均开始自己打自己脸了,请问元组的标志性符号是什么(提示;列表是[中括号]哦)
一位长得挺帅的同学回答到;“小括号”,没错我刚开始也是这么理解的,但是这个是错误的,具体哪里错了,看例子。
type()方法
type方法返回参数类型
这里天均为什么又提到了type方法呢?
不要说话看例子
>>> apple = (1)
>>> apple
1
>>> type(apple)
<class 'int'>
>>> banana = (1,2,3,3)
>>> banana
(1, 2, 3, 3)
>>> type(banana)
<class 'tuple'>
不知道天均的土味英语大家感觉如何
有同学疑惑了,这元组的类型还是动态的,带动态变化的啊,这个问题看下面不带小括号会怎样
>>> apple = 1,2,3,4
>>> apple
(1, 2, 3, 4)
>>> type(apple)
<class 'tuple'>
>>> banana = (1,2,3,4,5)
>>> banana
(1, 2, 3, 4, 5)
>>> type(banana)
<class 'tuple'>
是不是很夸张,那元组的标志性符号是什么,不是小括号,难道是逗号吗,没错。(其实当时我也是惊讶的)举个例子,看一下逗号在元组里的关键性
>>> 8 * (2)
16
>>> 8 * (2,)
(2, 2, 2, 2, 2, 2, 2, 2)
更新与删除元组
前面提到元组就像一张图片,可视不可更改,怎么又开始说更新了呢?
看例子
>>> temp = temp[:3] + ('傻子',) + temp[3:]
>>> temp
('天钧', '老五', '老留', '傻子', '乌木')
注意重点来了,前面说逗号是元组的必需品,注意傻子后面还有个逗号,如果不加Python就把它当成字符串而不是元组,只有元组才能与元组进行拼接
看一下错误信息
>>> temp = temp[:3] + ('傻子') + temp[3:]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "str") to tuple
删除
拼接法
跟上面的同理,拼接然后再赋值,直接看例子
>>> temp
('天钧', '老五', '老留', '傻子', '乌木')
>>> temp = temp[:2] + temp[3:]
>>> temp
('天钧', '老五', '傻子', '乌木')
你能找到少了谁吗?不妨做一下笔记,在实验一下,毕竟实验才是巩固知识是的最好方式