学习目标:元组的概念,创建,访问元组元素,删除和修改,推导式
一.元组的概念:
1.元组和列表类似,元素用小括号()包围
2.各元素之间使用逗号隔开
3.有序的,不可变的数据类型,没有增删该查,如果要修改,可以采用其他的数据类型,给元组重新赋值
4.元素可以是不同的数据类型
二.创建元组
1.创建元组,使用小括号(),元素之间用逗号分隔,注意:当元组只有一个元素时,这个元素的后面必须要有一个逗号
例如:
tup = (2)
print(tup,type(tup))#2 <class 'int'>
tup = (2,)
print(tup,type(tup))#(2,) <class 'tuple'>
三.访问元组元素
1.使用索引访问元组中的元素,索引从0开始
例如:
color = ("white","red","blue","yellow","pink")
print(color[2])#用索引值为2来获取元素 blue
2.切片操作:可以通过切片操作获取元组的子集
例如:
color = ("white","red","blue","yellow","pink")
print(color[1:4])#('red', 'blue', 'yellow')
3.连接元组,可以使用 + 运算符来连接两个元组
例如:
tup1 =(1,2)
tup2 =(3,)
print(tup1 +tup2)
四.元组的删除和修改
1.使用del语句删除不在使用元组元组
例如:
tup1 = (1,2,3,4)
del tup1
print(tup1)#会输出错误提示:NameError: name 'tup1' is not defined,说明"tup1"变量未定义,从而删除元组
2.元组时不可变的数据类型,但可以通过给元组赋值可以进行修改,或者转变成其他数据类型(列表等)
例如:
tup1 = (1,2,3,4)
重新给元组赋值
tup1 = (5,6,7,8)
tuple1 = (1, 2, 3, 4, 5)
list1 = list(tuple1)#把元组转换成列表
list1[0] = 10
tuple2 = tuple(list1)
print(tuple2) # 输出 (10, 2, 3, 4, 5)
五.元组推导式
1.一种简洁的创建元组的方式,特别适用于快速生成较小的元组。
例如:
squares = (x*x for x in range(5))
print(tuple(squares))#(0, 1, 4, 9, 16)
2.表达式中添加条件来筛选元素。
例如:
squares = (x*x for x in range(5) if x%2 == 0)
print(tuple(squares))#(0, 4, 16)
3.还可以使用__next__方法来获取迭代器的下一个元素
例如:
my_iterator = iter([1, 2, 3, 4, 5])
print(my_iterator.__next__()) # 输出: 1
print(my_iterator.__next__()) # 输出: 2
print(my_iterator.__next__()) # 输出: 3
print(my_iterator.__next__()) # 输出: 4
print(my_iterator.__next__()) # 输出: 5
# 因为没有更多元素可迭代,下面的代码会引发StopIteration异常
print(my_iterator.__next__())
4.可以用zip()函数迭代的对象(元组,列表)作为参数,将对应的元素组合成一个个元组,常与for循环一起搭配使用
例如:
tuple1 = (1,2,3,4,5)
tuple2 = ("red","bule","yellow","brown","black")
for i in zip(tuple1,tuple2):
print(i)
'''
输出
(1, 'red')
(2, 'bule')
(3, 'yellow')
(4, 'brown')
(5, 'black')
'''
总结:
元组是一个有序的,不可表的序列,可以是不同的数据类型,可以用普通索引和切片索引获取元素