1/Python的元组
元组与列表类似,不同之处在于元组的元素不能修改。格式为小括号里面逗号分隔各个元素。
example:a=(1,2,3,4)
空元组:() 圆括号中不包含任何元素就是空元组
>>> ()
()
一个值的元组:圆括号中仅有的元素值和逗号 格式如下:
(n,)
n如果是字符或字符串的话需要加双引号或者单引号
>>> (3,)
(3,)
>>> (m,)
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
(m,)
NameError: name 'm' is not defined
>>> ("m",)
('m',)
>>>
2/tuple函数
tuplue(seq) 将seq转化为元组
>>> tuple("hello")
('h', 'e', 'l', 'l', 'o')
>>> tuple(["hello","world"])
('hello', 'world')
3/元组的基本操作
(1)访问元组
通过下标索引来访问元组元素
(2)修改元组
元组中的元素值无法修改,不过可以通过连接组合。(+是连接组合)
(3)删除元组
通过del可以删除整个元组
>>> a=('hello', 'world')
>>> a
('hello', 'world')
>>> a[0]
'hello'
>>> a[1]
'world'
>>> a+("1","am","good")
('hello', 'world', '1', 'am', 'good')
>>> a
('hello', 'world')
>>> del a
>>> a
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
a
NameError: name 'a' is not defined
>>>
(4)元组索引/截取
元组也是一个序列,所以可以访问元组中指定位置的元素,也可以截取索引中的一段元素。
>>> b
(1, 2, 3, 4, 5, 6, 7, 7)
>>> b[0:3]
(1, 2, 3)
>>> b[:]
(1, 2, 3, 4, 5, 6, 7, 7)
>>> b[-2:]
(7, 7)
4/元组内置函数
len(tuple) tuple:元组名称
max(tuple) tuple:元组名称
min(tuple) tuple:元组名称
tuple(seq) seq:列表名称
5/列表与元组的区别
元组的元素不可修改,一旦元组初始化就不能修改了。
因为元组不可变,所以代码更安全。所以能用元组代替列表就尽量用元组。
example:
>>> t=('a','b',['A','B'])
>>> t[2][0]='x'
>>> t[2][1]='y'
>>> t
('a', 'b', ['x', 'y'])
example中使用了嵌套,一个元组中包含了另一个列表。也可以称为二维数组。一个单一的列表称为一维数组。还有三维四维等多维数组,不过一般用的少。
二维数组中元素获取方式,t[0]的值’a’
t[1]的值‘b’
t[2] [0] 的值’A’
t[2] [1] 的值’B’
之前说了元组元素不可改变,为什么example中可以赋值改变呢?
表面上看,元组的元素确实变了,其实变得不是元组的元素,而是list列表的元素。元组一开始指向的list列表并没有改变成别的list列表,所以元组的“不变”是指每个元素的指向永远不变,如指向‘a’就不能指向’b’,指向一个list就不能改成指向其他对象,但指向的list列表本身是可变的。