序列三儿子——元组
1.元组的许多用法与列表相似,元组的二哥列表用[ ]标识,元组用()标识
2.表示方法
#标识
a=(1,2)#元组用()标识,元素间用“,”隔开
print(a)
#如果元组中只有一个元素,末尾也必须添加逗号
a=(1,)
print(a)
#判断变量类型用type()
print(type(a))#输出<class 'tuple'>
#如果不添加逗号,()就会被当成运算符来处理
a=(1)
print(a)#输出1,程序误以为你申请了一个值为1的整数a
#判断变量类型用type()
type(a)
print(type(a))#输出<class 'int'>
3.截取元素
#截取元组
# 格式:元组[头索引:尾索引],截取范围:头索引~(尾索引-1)
a=('编程八点档','is',666)
a[1:3]
print(a[1:3])#输出('is', 666)
#头索引和尾索引的值可以省略,但:不能省略
#省略头索引
#写法 [:尾索引] 截取范围0~(尾索引-1)
a=('编程八点档','is',666)
a[:2]
print(a[:2])#输出 ('编程八点档', 'is')
#省略尾索引
#写法 [头索引:] 截取范围 头索引~最后
a=('编程八点档','is',666)
a[1:]
print(a[1:])#输出('is', 666)
#第三种,省略头索引和尾索引,截取全部元素
a=('编程八点档','is',666)
a[:]
print(a[:])#输出('编程八点档','is',666)
4.元组特点
#元组特点
#元组和字符串一样,一旦被定义,元素的值便不可变,元素不可修改也不可删除
a=(1,2,3)
a[0]
print(a[0])
'''
#如果修改的元素的值程序就会报错
a[0]=2
print(a[0]=2)
'''
#r如果对整个元组进行修改是ok的
a=(1,2,3)
print(id(a))#修改前的元组地址,输出2374042267792
a=(4,5,6)
print(a)#输出(4, 5, 6)
print(id(a))#修改后的元组地址,输出2374042267936
#对比修改前和修改后的地址,可以发现地址变了,说明修改之后生成了新的地址
#和列表一样,元组的元素类型可以不一致
a=('编程八点档',666)
print(a)#输出('编程八点档',666)
5.常用方法
- 组合和复制
#常用方法
#元组也有着跟字符串。列表相同的操作和内置函数
#组合
#不同元素可以用+进行组合,生成新的元组
a=(1,2,3)
b=('编程八点档',666)
c=a+b
print(c)#输出 (1, 2, 3, '编程八点档', 666)
#复制
#用*进行复制
a=(1,2,3)
a*3
print(a*3)#输出(1, 2, 3, 1, 2, 3, 1, 2, 3)
2.删除
#删除
#虽然元组一旦定义便不可修改、删除,但可以用del删除整个元组
a=(1,2,3)
del a
print(a)#输出NameError: name 'a' is not defined,说明a已经被成功删除
3.in、len()、min()、max()、tuple()
#in
#用in判断是否包含特定元素,包含返回true,不包含返回false
a=(1,2,3)
b=1 in a
print(b)#输出True
#len()
#返回元素个数
a=(1,2,3)
print(len(a))#输出3
#min
#返回最小值
a=(1,2,3)
print(min(a))#输出1
#max
#返回最大值
a=(1,2,3)
print(max(a))#输出3
#tuple()
#将其他可迭代类型转为元组类型
a=[1,2,3]
print(a)#输出[1, 2, 3]
print(type(a))#输出<class 'list'>,是列表
b=tuple(a)#转换为元组类型
print(b)#输出(1, 2, 3)
print(type(b))#输出<class 'tuple'>,变成了元组
#什么是可迭代类型?
#简单理解为,包含多个元素的类型,比如list列表,