- 元组(tuple): 不可变数据类型;元组内可以存储任意数据类型
1.元组的创建
(1)空元组
t0 = ()
print(t0)
print(type(t0))
(2)一个元素的元组,必须加",";不加","()里是什么数据类型它就是什么数据类型
t1 = (1,)
print(t1)
print(type(t1))
(3)元组里可以储存不同的数据类型
t2 = (1,2.3,True,'hello')
print(t2)
print(type(t2))
(4)元组里也可以嵌套列表(列表也是一种数据类型)
t3 = ([1,2,3],4)
t3[0].append(4)
print(t3)
print(type(t3))
(5)元组里也可以嵌套元组(元组也是一种数据类型)
t4 = ((1,2),(3,4,5),6)
print(t4)
print(type(t4))
2.元组的特性
users = ('root','westos','redhat')
passwds = ('123','456','789')
(1)索引
print(users[0])
print(users[-1])
(2)切片
print(users[1:])
print(users[:-1])
print(users[::-1])
(3)重复
print(users * 2)
(4)连接
print(users + passwds)
(5)成员操作符
print('root' in users)
print('root' not in users)
(6)迭代
for user in users:
print(user)
for index,user in enumerate(users):
print("第%d个用户:%s" %(index+1,user))
for user,passwd in zip(users,passwds):
print(user,':',passwd)
3.元组的查看
t = (1,2.3,True,'westos')
(1)查看某个元素出现的次数
print(t.count('westos')) # 输出 1
(2)查看指定元素的索引值(最小索引值)
print(t.index(1)) # 输出 0
4.元组的应用
去掉一个最高分一个最低分求平均
scores = (59,89,65,78,100)
(1)转化为列表,利用sort()排序–ascii码排序,再求平均
scoreli = list(scores)
scoreli.sort()
print(scoreli)
print('%.2f' %(sum(scoreli[1:-1])/(len(scores)-2)))
print('')
(2)直接用sorted()排序,排序后直接为列表
scores = sorted(scores)
print(type(scores))
print(scores)
print('%.2f' %(sum(scoreli[1:-1])/(len(scores)-2)))
print('')
(3)利用元组的性质
minscore,*middlescore,maxscore = scores
print(minscore)
print(middlescore)
print(maxscore)
print('最终成绩为: %.2f' %(sum(middlescore)/len(middlescore)))