元组:
- 与列表一样,都是一种可以存储多种数据结构的队列
- 是有序的,且元组中的元素可以重复
定义:
- tuple表示元组类型,可用tuple内置函数定义一个元组
- 元组中的元素存在于一个()中,各元素用逗号隔开
- 是一个无限制长度的数据结构
- 元组中的元素可以是任何类型的数据
- 若元组中只有一个元素,必须要在元素后添加一个逗号,否则编译器不认为它是一个元组
元组与列表的区别:
- 元组比列表占用资源更小
- 列表是可变的,元组是不可变的
例:
a = tuple((1, "张三", None, [11,22]))
b1 = (3)
b2 = ('3')
c = (3,)
d = ()
# 打印变量的数据类型
print(type(a))
print(type(b1))
print(type(b2))
print(type(c))
print(type(d))
结果:
总结:
- 若是一个元组中只有一个元素且没有逗号,则它的数据类型不是元组,而是由这个元素本身的数据类型所决定
- 创建一个空元组可以直接使用(),也可以使用touple()
in、max、min在元组中使用方式与列表相同
1.内置成员运算符in:判断元组中是否包含某个成员
- in :若是列表中包含“张三”,返回True,否则返回False
- not in :若是列表中不包含“张三”,返回True,否则返回False
例:
a = (1, "张三", None, [11,22])
# 使用in,判断“张三”是否是元组中的成员
res1 = "张三" in a
res2 = "张三" not in a
print(res1)
print(res2)
结果:
2.内置函数max和min
- 函数max:返回数据中最大的成员、
- 函数min:返回数据中最小的成员
- 中文符号>字母>数字>英文符号
- 中文按照拼音的首字母来计算
- max和min在元组中使用的时候,元组中的元素不能是多种类型,如果类型不一致,会报错
- 元组中的数据为空的话,使用max或者min会报错
例1:
a = (3, 5, 9, 2)
# a和b列表中数据一致,可以正常打印最大或最小成员
print("a元组中最大的成员:",max(a))
print("a元组中最小的成员:",min(a))
结果:
例2:元组中元素的类型不一致会报错
c = (1, "11")
# c中的数据类型不一致,会报错
print(min(c))
结果:
例3:空元组使用max或者min会报错
c = ()
print(min(c))
3.内置函数len–获取元组的长度
例:
a = (2, '11', ('aa'), [4, 3])
b = ()
# 使用len函数打印元组长度
print("a元组长度:",len(a))
print("b元组长度:",len(b))
结果:
4.元组切片和索引
- 元组可以和列表一样获取所有和切片索引
- 元组函数index和列表用法一致
- 元组无法通过索引修改和删除元素,元组不可变
例:
a = (1, 2, 3, 4, 5, 6, 7, 8)
print('元组:{}'.format(a))
# 切片
print('元组最大索引是:{}'.format(len(a)-1)) # 最大索引值
print('元组第四个位置的值:{}'.format(a[3])) # 第四个位置的值
print('元组全部内容:{}'.format(a[:])) # 全部内容
print('元组全部内容:{}'.format(a[0:])) # 全部内容
print('除最后一个元组外的其他内容:{}'.format(a[:-1])) # 除了最后一个元素的其他内容
print('元组倒序:{}'.format(a[::-1])) # 倒序
print('反向获取元组倒数第二个元素:{}'.format(a[-2:-1])) # 反向获取
print('从0到8,每隔一个获取的元素:{}'.format(a[0:8:2])) # 步长获取,从0到8,每2个获取一个
print('空元组:{}'.format(a[0:0])) # 空列表
print('查找元素2的索引:{}'.format(a.index(2))) # 查找元素2的索引值
# 删除元组
del a
结果: