元组
元组(tuple):元组是不可变的序列,没有增,删,改的权限(即不能修改),只能查询和使用索引,切片等一些功能。
元组使用小括号,列表使用方括号。
元组最大的好处是可以保证数据的安全。
1.创建元组
使用 tuple()
或者 ( )
直接初始化元组
# 创建一个空元组
t1 = ()
print(t1) # out: ()
# 创建只包含一个值的元组(组中只有一个元素时,后面一定要加逗号,否则数据类型不确定)
t2 = (1, )
print(type(t2))
print(t2) # out: (1,)
# 创建一个包含三个元素的元组
t3 = (11, 22, 33)
print(t3) # out: (11, 22, 33)
# 将列表转换成元组
t4 = tuple([1, 2, 3, 4])
print(t4) # out: (1, 2, 3, 4)
# 将字典转换成元组
#针对字典 会返回字典的key组成的tuple
t5 = tuple({'a': 100, 'b': 42, 'c': 9})
print(t5) # out: ('a', 'b', 'c')
# 将字符串转换成元组
t6 = tuple("abc")
print(t6) # out: ('a', 'b', 'c')
# 将区间转换成元组
t7 = tuple(range(1, 6))
print(t7) # out: (1, 2, 3, 4, 5)
2.元组的访问和截取
元组可以使用下标索引来访问元组中的值
语法格式:tuple_name[i]
tup1 = ('physics', 'chemistry', 1997, 2000)
print("tup1[0]: ", tup1[0]) # out: tup1[0]: physics
元组可以可以截取索引中的一段元素
语法格式:tuple_name[start : end : step]
其中step可有可无(默认为1,不能为0),[start, end)范围为左闭右开
tup2 = (1, 2, 3, 4, 5, 6, 7)
print("tup2[1:6:2]: ", tup2[1:6:2]) # out: tup2[1:6:2]: [2, 4, 6]
print("tup2[1:5]: ", tup2[1:5]) # out: tup2[1:5]: [2, 3, 4, 5]
# 反向读取,读取倒数第二个元素
print('tup2[-2]: ', tup2[-2]) # out: tup2[-2]: 2
# 截取元素,从第二个开始后的所有元素
print('tup2[1:]: ', tup2[1:]) # out: tup2[1:]: (2, 3, 4, 5, 6, 7)
3.修改元组
元组中的元素值是不允许修改的,但可以对元组进行连接组合
'''对元组变量进行重新赋值'''
tup1 = (10, 20)
tup1 = (5, 25.3)
print(tup1) # out: (5, 25.3)
# 以下修改元组元素操作是非法的。
# tup1[0] = 100; #报错
'''通过连接多个元组(使用`+`或者`*`进行拼接元组)的方式向元组中添加新元素'''
tup2 = (12, 34.56)
tup3 = ('abc')
# 创建一个新的元组
tup4 = tup2 + tup3
tup5 = tup3 * 2
print(tup4) # out: (12, 34.56, 'abc')
print(tup5) # out: ('abc', 'abc')
4.删除元组
元组中的元素值是不允许删除的,但可以使用
del()
语句来删除整个元组
tup = ('physics', 'chemistry', 1997, 2000)
print(tup) # out: ('physics', 'chemistry', 1997, 2000)
del(tup)
print(tup) # 删除tup中的所有元素
5.元组常用方法
tuple.index(obj[,start=0[,end=len(tuple)]])
:获取指定元素的索引号
obj -- 指定检索的对象。
start -- 可选参数,开始索引,默认为0。(可单独指定)
end -- 可选参数,结束索引,默认为元祖的长度。(不能单独指定)
tup = [1, 2, 3]
tup.index(2) # out: 1
tuple.count(x)
:获取元组中元素出现的次数
tup = [1, 2, 1, 5, 2]
tup.count(2)
# out: 2
sorted(tup)
:暂时排序
tuple = (11, -10, 22, 999, 33, 44)
# 不改变元组中元素的位置,只是临时排序,是可以的
print(sorted(tuple)) # out: [-10, 11, 22, 33, 44, 999]
6.元组中的内置函数
len(tuple)
:计算元组元素个数
max(tuple)
:返回元组中元素最大值
min(tuple)
:返回元组中元素最小值
sum(tuple)
:计算元组的和
tuple(seq)
:将列表转换为元组
t1 = (2, 5, 15, 48, 88)
len(t1) # out: 5
max(t1) # out: 81
min(t1) # out: 1
sum(t1) # out: 161
tuple([1,2,4]) # out: (1, 2, 4)