元组(Tuple)
不可变的列表,元组的所有元素都放在()中
用于保存不可修改的内容
1、元组的创建
tuplename=(元素1,元素2,…………元素n)
当元组中存在多个元素时,定义时可以不加小括号
当元组中只存在一个元素时,定义时需要在后面加一个逗号,不然默认创建的是字符串
创建空元组
emptytuple=()
创建数值元组
tuplename=(data)
data表示可以转换为元组的数据,可以是range、字符串、元组或其他可迭代类型的数据
eg:创建一个10-20(不包括20)之间的偶数元组
tuple1=tuple(range(10,20,2))
(10,12,14,16,18)
访问元组元素
和列表一样,可以通过索引和切片访问,可以用for循环遍历,可以用enumerate()函数访问
元组修改
元组不可以直接修改其中内容,但是可以对元组进行连接组合,连接的内容必须都是元组
eg
yuanzu1=('喜羊羊','懒羊羊','美羊羊','沸羊羊','慢羊羊','软绵绵')
print("原元组",yuanzu1)
yuanzu1=yuanzu1+('红太狼','灰太狼')
print("新元组",yuanzu1)
原元组 ('喜羊羊', '懒羊羊', '美羊羊', '沸羊羊', '慢羊羊', '软绵绵')
新元组 ('喜羊羊', '懒羊羊', '美羊羊', '沸羊羊', '慢羊羊', '软绵绵', '红太狼', '灰太狼')
元组推导式
和列表类似,只不过把[]换成()
eg:生成一个包含10个随机数的元组
yuanzu2=(random.randint(10,100) for i in range(10))#错误写法
yuanzu3=tuple(random.randint(10,100) for i in range(10))
print(yuanzu2)
print(yuanzu3)
<generator object <genexpr> at 0x000002AFB27BAE08>
(56, 32, 30, 77, 30, 59, 28, 44, 39, 39)
元组元素遍历
使用for循环或者_next_()方法遍历
import random
yuanzu3=tuple(random.randint(10,100) for i in range(10))
for i in yuanzu3:
print(i,end=' ')
print(