- 元组(tuple): 元组本身是不可变数据类型,没有增删改查
- 元组内可以存储任意数据类型
1.元组的创建
(1)创建
t = (1,2.3,True,'star')
print(t)
print(type(t))
测试结果:
(1,2.3,True,'star')
<class 'tuple'>
(2)元组里面包含可变数据类型,可以间接修改元组内容
t1 = ([1,2,3],4)
t1[0].append(4)
print(t1)
测试结果:
([1,2,3,4],4)
(3)元组里如果只有一个元素的时候,后面要加逗号,否则数据类型不确定
t2 = ('hello')
print(type(t2))
t3 = ('hello',)
print(type(t3))
测试结果:
<class 'str'>
<class 'tuple'>
2.元组的特性
allowusers = (‘root’,‘westos’,‘redhat’)
allowpasswd = (‘123’,‘456’,‘789’)
(1)索引 切片
print(allowusers[0])
print(allowusers[-1])
print(allowusers[1:])
print(allowusers[:-1])
print(allowusers[::-1])
测试结果:
root
redhat
('westos', 'redhat')
('root', 'westos')
('redhat', 'westos', 'root')
(2)重复
print(allowusers * 3)
测试结果:
('root','westos','redhat', 'root','westos','redhat', 'root','westos','redhat')
(3)连接
print(allowusers + ('linux','python'))
测试结果:
('root','westos','redhat', 'linux', 'python')
(4)成员操作符
print('westos' in allowusers)
print('westos' not in allowusers)
测试结果:
True
False
(5)for循环
1>
for user in allowusers:
print(user)
测试结果:
root
westos
redhat
2>
for index,user in enumerate(allowusers):
print('第%d个白名单用户: %s' %(index+1,user))
测试结果:
第1个白名单用户:root
第2个白名单用户:westos
第3个白名单用户:redhat
3>zip 两个元组之间的元素一一对应
for user,passwd in zip(allowusers,allowpasswd):
print(user,':',passwd)
测试结果:
root : 123
westos : 456
redhat : 789
3.元组的常用方法
(1)出现的次数
(2)索引
t = (1,2.3,True,'linux')
print(t.count('linux'))
print(t.index(1))
测试结果:
1
0
4.元组的应用场景
(1)元组的赋值,有多少个元素,就用多少个变量接收
t = ('westos',11,100)
name,age,score = t
print(name,age,score)
测试结果:
westos 11 100
(2)元组排序
1>类型转换为列表用.sort()方法排序
scores = (100,89,45,78,65)
scoresLi = list(scores)
scoresLi.sort()
print(scoresLi)
测试结果:
[45, 65, 78, 89, 100]
2>sorted()直接排序
scores = (100,89,45,78,65)
scores = sorted(scores)
print(scores)
测试结果:
[45, 65, 78, 89, 100]
(3)去掉一个最高分,去掉一个最低分,求平均值
scores = (100,89,45,78,65)
scores = sorted(scores)
minscore,*middlescore,maxscore = scores
print(minscore)
print(middlescore)
print(maxscore)
print('最终成绩为:%.2f' %(sum(middlescore) / len(middlescore))
测试结果:
45
[65, 78, 89]
100
最终成绩为:77.33