Python之元组
对于容器型数据类型list,无论谁都可以对其增删改查,那么有一些重要的数据放在list中是不安全的,所以需要一种容器类的数据类型存放重要的数据,创建之初只能查看而不能增删改,这种数据类型就是元组。元组和列表相似,元组使用括号,元组的值一旦初始化便不能进行修改。
1.1初始元组
t = ('a', 'b', 'c', 1, 2, 3) print(t) print(type(t))
注:定义只含有一个元素的元组时,需要在元素后面添加一个逗号,tuples=(1,),以免产生歧义。
1.2获取数据
获取数据,在获取数据时与列表完全相同
tuples = ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu', 'wanglaoliu', 'yanlaoqi')
print(tuples[0]) # zhangsan,打印第0位置的值
print(tuples[-1]) # yanlaoqi,打印最后一个元素的值
print(tuples[-2:]) # ('wanglaoliu', 'yanlaoqi'),打印最后两个元素的值
print(tuples[:-2]) # ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu'),打印第0索引位置的值到倒数第2个元素的值(不包括倒数第2个元素的值)
print(tuples[:]) # ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu', 'wanglaoliu', 'yanlaoqi'),打印所有的值
1.3修改元组
# 元组在创建后内容不可变 # t[0] = 2 # 写入数据的函数同样不被支持 # t.insert('f')
元组中的元组的值虽然不允许修改,但是可以把元组进行连接组合:
tu1 = ('huashan','songshan')
tu2 = ('taishan',)
tu3 = tu1 + tu2
print(tu3) # ('huashan', 'songshan', 'taishan')
注:如果元组内持有列表,那么列表的内容是允许被修改的。
tuples = (1, 2, 3, [4, 5, 6])
tuples[3][1] = 11
print(tuples) # (1, 2, 3, [4, 11, 6])
1.4删除元组
元组中的元素虽然不可以进行修改,但是可以把整个元组删除掉:
tuples = ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu', 'wanglaoliu', 'yanlaoqi')
del tuples
print(tuples) # NameError: name 'tuples' is not defined
1.5循环遍历
在Python中,可以使用for循环遍历所有非数字类型的变量:列表、元组、字典以及字符串。但是在实际开发中,除非能够确认元组中的数据类型,否则针对元组的循环遍历需求并不是很多。
names = ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu', 'wanglaoliu', 'yanlaoqi')
for name in names:
print(name)
1.6元组的应用场景
在实际开发中,元组的应用场景为:
1)函数的参数和返回值,一个函数可以接收任意多个参数,或者一次返回多个数据。
2)格式字符串,格式化字符串后面的()本质上就是一个元组。
3)重要数据,用户名,密码,个人信息,不想让别人改动的一些数据,存在元组中。
4)元组的拆包。分别赋值。
a, b = (1, 2) # 多一个少一个都不行 print(a,b) c = (1,2) a,b = c print(a,b)
info_tuple = (18, 175, 75.50)
# 格式化字符串后面的'()'本质上就是元组
print("小明的年龄%s,身高%s,体重%.2f" % info_tuple) # 小明的年龄18,身高175,体重75.50
1.7元组和列表之间的转换
- 使用list函数可以把元组转换成列表。
- list(元组)
- 使用tuple函数可以把列表转换成元组。
- tuple(列表)
1.8列表与元组的区别与应用场景
1.9元组常用方法
tuples = ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu', 'wanglaoliu', 'yanlaoqi', 'lisi')
print(tuples.index('wanglaoliu')) #,4,返回指定值的索引
print(tuples.count('lisi')) # 2,返回指定值出现的次数
print(max(tuples)) # zhaolaowu,返回元组的最大值
print(min(tuples)) # bo xiao yuan,返回元组的最小值
print(len(tuples)) # 7,返回元组的长度