Python 第六天 tuple元组详解
元组和列表(list)的不同之处在于:
列表的元素是可以更改的,包括修改元素值,删除和插入元素,列表是可变序列。
元组一旦创建,元素就不可更改,是不可变序列。
元组所有的元素都放在一对小括号 () 中,相邻元素之间用逗号分隔,如下所示:
(element1,element2,...,elementn)
元组里面的元素个数没有限制,只要是Pyhton支持的数据类型就可以;元组的数据类型是: tuple。
创建元组:
(1)使用 () 直接创建;
具体格式为:
tuple_name = (element1,element2,...,elementn)
示例:
1 int1 = (1, 3, 5, 7, 9)
2 str1 = ('Hello Word', 'www.baidu.com')
3 num1 = ('Python', 18, [1, 3], ('a', 3.14))
也可以不用小括号将元素包裹起来,只要将各元素用逗号隔开,Python就会将其视为元组。
示例:
1 str2 = 'Are you ok?', 'www.huawei.com'
2 print(str2)
结果:
('Are you ok?', 'www.huawei.com')
注意:当创建的元组只有一个字符串类型的元素时,元素后面必须要加一个逗号,否则Python解释器会将它视为字符串。
示例:
1 # 加上逗号
2 a = ("www.baidu.com",)
3 print(type(a))
4 print(a)
5
6 # 不加逗号
7 b = ("www.taobao.com")
8 print(type(b))
9 print(b)
结果:
<class 'tuple'>
('www.baidu.com',)
<class 'str'>
www.taobao.com
(2)使用 tuple() 函数创建元组:
语法格式:
tuple(data)
data 表示可以转化为元组的数据,包括字符串,元组,range 对象等。
示例:
1 # 将字符串转换成元组
2 tup1 = tuple("hello")
3 print(tup1)
4
5 # 将列表转换成元组
6 list1 = ['java', 'python', "c++"]
7 tup2 = tuple(list1)
8 print(tup2)
9
10 # 将字典转换成元组
11 dict1 = {'a':100, 'b':150, 'c':8}
12 tup3 = tuple(dict1)
13 print(tup3)
14
15 # 将区间转换成元组
16 range1 = range(1, 6)
17 tup4 = tuple(range1)
18 print(tup4)
19
20 # 创建空元组
21 print(tuple())
结果:
('h', 'e', 'l', 'l', 'o')
('java', 'python', 'c++')
('a', 'b', 'c')
(1, 2, 3, 4, 5)
()
访问元组元素:
和列表一样,可以使用(index)访问元组中的某个元素(得到一个元素的值),也可以使用切片访问元组中的一组元素(得到的是一个新的子元组);
格式:
tuple_name[i]
i 是索引值,可以是正数也可以负数。
切片访问格式:
tuple_name[start:end:step]
start 表示起始索引,end 表示结束索引,step 表示步长。
示例:
1 url = tuple("今天是学习Python的第六天我一定要坚持下去")
2
3 # 使用索引访问元组中的某个元素
4 print(url[3]) # 使用正数索引
5 print(url[-4]) # 使用负数做索引
6
7 # 使用切片访问元组中的一组元素
8 print(url[6: 10]) # 使用整数切片
9 print(url[6: 14: 3]) # 指定步长
10 print(url[-6: -1]) # 使用负数切片
结果:
学
坚
('y', 't', 'h', 'o')
('y', 'o', '第')
('定', '要', '坚', '持', '下')
修改元组:
前面说过,元组是不可变的序列,元组中的元素不能被修改,只能创建一个新的元组去替代旧的元组。
示例:
1 tup = (3.14, 5.16, 15, -55)
2 print(tup)
3 # 队员组进行重新赋值
4 tup = ("Hello Word")
5 print(tup)
结果:
(3.14, 5.16, 15, -55)
Hello Word
可以通过连接多个元组(使用+可以拼接元组)的方式想元组中添加新元素。
示例;
1 tup1 = (55, 6.13, -99, 88)
2 tup2 = (4+33, -87, 99)
3 print(tup1+tup2)
4 print(tup1)
5 print(tup2)
结果:
(55, 6.13, -99, 88, 37, -87, 99)
(55, 6.13, -99, 88)
(37, -87, 99)
删除元组:
可以使用 del 关键字删除元组。
示例:
1 tup1 = (55, 6.13, -99, 88)
2 print(tup1)
3 del tup1
4 print(tup1)
结果:
(55, 6.13, -99, 88)
Traceback (most recent call last):
File "D:\pythonProject\one day\test.py", line 392, in <module>
print(tup1)
NameError: name 'tup1' is not defined. Did you mean: 'tuple'?