元组的定义
列表:打了激素的数组,数组只能存储相同数据类型的元素,但是列表无论什么数据类型都可以进行存储。
元组:带了紧箍咒的列表,元组本身是一个不可变数据类型,没有增删改的功能,但是这并不意味着,元组里的元素一定不能进行增删改
如果元组里面包含可变的数据类型,可以间接地去修改元组内容
例如:
t1 = ([1,2,3],4,5,6) ##t1是元组,但是其中的元素有列表数据类型(可变的数据类型)
print(t1,type(t1)) ##确认t1的类型还是元组
t1[0].append(9) ##此时t1[0]就是t1中的列表[1,2,3],此时增添一个列表元素9
print(t1) ##观察添加元素成功
元组和列表数据类型的转换
列表----->元组
li = [] ##定义li为空列表
print(li,type(li))
t2 = tuple(li) ##将li的数据类型转换为元组,并赋值给t2存起来
print(t2,type(t2)) ##查看此时t2的数据类型为元组
元组 ------> 列表
li1 = list(t2) ##将t2(元组数据类型)转换为列表,并赋值给li1存起来
print(li1,type(li1)) ##查看li1的数据类型为list
定义一个元组
t = (1,1.2,True,'westos') ##注意:元组是()
print(t,type(t))
注意:元组如果只有一个元素的时候,元素后面一定要加逗号(,), 否则数据类型不确定
t3 = ('westos')
print(t3,type(t3)) ##此时查看t3数据类型为string
__________________________________________
t3 = ('westos',)
print(t3,type(t3)) ##此时查看t3数据类型为tuple
元组的常用方法
t = (1,1.2,True,'westos','westos') ##定义一个元组
print(t.index('westos')) ##对t这个元组中的‘westos‘进行索引,并返回索引值
print(t.count('westos')) ##返回t这个元组中‘westos‘元素的个数
元组的特性
t = (1,1.2,True,‘westos’,‘westos’) ##给定这个元组
索引
print(t[0]) ##打印1
print(t[1]) ##打印1.2
切片
print(t[::-1]) ##对元组进行反转
print(t[:-1]) ##打印元组中除了最后一个元素以外的所有元素
连接
print(t + (1,2,3,4)) ##只支持相同数据类型之间的连接
不同的数据类型之间不能连接
print(t +[1,2,3]) ##元祖和列表连接会报错
print(t + 'westos') ##元组和字符串连接会报错
重复
print(t * 20) ##将元组里面的元素重复打印20遍
for循环
for i in t:
print(i) ##将元组t中的元素分别打印出来
成员操作符
print(1 in t) ##返回True
print(1 not in t ) ##返回 False
元组的应用场景
在不添加第三个变量的情况下,对变量的值进行交换
a = 1
b = 2
a,b=b,a ## b,a =(1,2) b=(1,2)[0] a=(1,2)[1]
print(a) ##此时a,b值已经发生交换
print(b)
打印变量
name = 'westos'
age = 12
t = (name,age)
print('name:%s,age:%d' %(name,age))
print('name:%s,age:%d' %t)
t = ('westos','12','200')
name,age,nums = t ##其进行对应
print(name,age,nums) ##打印结果就是westos 12 200