元组
1.应用场景
·需求:想要存储多个数据,且数据不可修改
·列表→数据可以修改×
·元组→可以存储多个数据,且元组内数据不可修改√
2.定义
·特点:定义元组使用 (小括号),且用 逗号隔开各个数据,数据可以为不同数据类型
·注意:如果定义的元组只有一个数据,那么在这个数据后面也要添加逗号,否则数据类型为这个唯一数据的类型
# 定义元组
# 多个数据
t1 = (1,2,3)
# 单个数据
t2 = (1,)
#注意:定义单个数据
print(type(t2))
t3 = (1)
print(type(t3))
t4 = ('lee')
print(type(t4))
<class 'tuple'>
<class 'int'>
<class 'str'>
3. 常用操作
·元组数据不支持修改,只能查找
3.1 按下标查找
name_tuple = ('lcj','acx','gsl','dcd')
#按下标查找数据
print(name_tuple[3])
dcd
3.2 index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index方法相同。
# index()
print(name_tuple.index('lcj'))
print(name_tuple.index('zi-o'))
0
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-3-733da479710d> in <module>
1 # index()
2 print(name_tuple.index('lcj'))
----> 3 print(name_tuple.index('zi-o'))
ValueError: tuple.index(x): x not in tuple
3.3 count():统计某个数据在当前元组中出现的个数
# count()
print(name_tuple.count('dcd'))
1
3.4 len():统计元组中数据个数
·注意:元组内的直接数据如果修改会报错
·但是如果元组中有列表,可以修改列表里面的数据
# len()
print(len(name_tuple))
# 尝试修改元组内数据
name_tuple[0] = 'lee'
4
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-ed48742acd7d> in <module>
3
4 # 尝试修改元组内数据
----> 5 name_tuple[0] = 'lee'
TypeError: 'tuple' object does not support item assignment
# 修改元组中的列表
tup_list = (10,20,30,[40,50,60])
print(tup_list)
tup_list[3][1] = 99
print(tup_list)
(10, 20, 30, [40, 50, 60])
(10, 20, 30, [40, 99, 60])