元组用tuple来表示
1、元组的表达式 tuple = ()
tuple1 = ('china','dcs8',888,'中国',['duoceshi',666])
print(tuple1)
print(type(tuple1)) # 数据类型为<class 'tuple'>
2、当tuple当中只有一个元素的时候需要在末尾加一个逗号
tuple2 = ('china',)
print(tuple2)
print(type(tuple2)) # <class 'tuple'>
tuple1 = ('张三', '李四', '王五') # 定义了一个元组,有三个成员
tuple2 = () # 定义了一个空元组
tuple3 = ('张三', ) # 如果元组中只有一个值,那么后面必须写逗号
tuple4 = '张三', '李四', '王五' # 定义了一个元组,有三个成员
tuple5 = '张三', # 如果元组中只有一个值,那么后面必须写逗号
tuple6 = "张三" # 定义的不是元组,是字符串
tuple7 = ("张三") # 定义的不是元组,是字符串
3、索引位、切片取值
tuple1 = ('china','dcs8',888,'中国',['duoceshi',666])
print(tuple1[0]) # 可以使用索引 结果为:china
print(tuple1[2:]) # 可以使用切片 结果为:(888, '中国', ['duoceshi', 666])
4、元组不支持赋值和索引位插入值
tuple1 = ('china','dcs8',888,'中国',['duoceshi',666])
tuple1[0] = '666'
# 不支持赋值 TypeError: 'tuple' object does not support item assignment
tuple1.insert(0,'duoceshi') # 也不支持插入值
print(tuple1) # AttributeError: 'tuple' object has no attribute 'insert'
# 元组没有这个insert函数属性
5、可以对tuple当前的值间接的进行修改
tuple1 = (1,33,99,888,6)
list1 = list(tuple1) # 通过list方法把元组转换为列表
list1[0] = 'dcs8' # 索引位改值
tuple2 = tuple(list1) # 通过tuple方法把列表转换为元组
print(tuple2)
print(type(tuple2)) # 数据类型为元组 <class 'tuple'>
t1 = ('aa', 'bb', 'cc', 'bb')
# 1. 下标
print(t1[0]) # aa
# 2. index()
print(t1.index('bb')) # 1
# 3. count()
print(t1.count('aa')) # 1
# 4. len()
print(len(t1)) # 4
元组可以被改变吗? 当元组中的元素作为一个整体的时候是不可以被改变的
tuple1 = ('china','dcs8',888,'中国',['duoceshi',666])
tuple1[4][1] = 999
print(tuple1) # ('china', 'dcs8', 888, '中国', ['duoceshi', 999])
# 当元组中的一个元素为列表的时候可以通过索引或者切片把列表中的值进行修改
# ==》通过二维数组的方式进行修改
6、迭代 遍历
tuple1 = ('china','dcs8',888,'中国',['duoceshi',666])
for i in tuple1:
print(i)
7、元组和列表的区别
相同点
- 都是序列
- 都可以存储任何数据类型
- 可以通过索引访问
list和tuple都支持索引
list和tuple都支持切片操作
list和tuple都可以随意嵌套
写法上不同
列表使用 list1=["1","2"]
元组使用()
是否可变
列表是可变的,而元组是不可变的
可以修改列表的值,但是不修改元组的值
列表是动态的,长度大小不固定,可以随意的增加、删除、修改元素
元组是静态的,长度在初始化的时候就已经确定不能更改,更无法增加、删除、修改
由于列表是可变的,我们不能将列表用作字典中的key, 但可以使用元组作为字典key