Python学习之元组详解(创建,特性,常用方法及应用场景)

一.元组的创建

1.元组(tuple):元组本身是不可变数据类型,没有增删改查
2.元组内可以存储任意数据类型

t = (1,2.3,True,'star')
print(t)
print(type(t))

结果:
(1, 2.3, True, 'star')
<class 'tuple'>

3.元组里面包含可变数据类型,可以间接修改元组内容

t1 = ([1,2,3],4)
t1[0].append(4)
print(t1)

结果:
([1, 2, 3, 4], 4)

4.元组里如果只有一个元素的时候,后面要加逗号,否则数据类型不确定

t1 = ('hello')
t2 = ('hello',)
t3 = ('1',)
print(type(t1))
print(type(t2))
print(type(t3))

结果:
<class 'str'>
<class 'tuple'>
<class 'tuple'>

二.元组的特性

1.索引

allowusers = ('root','westos','redhat')
allowpasswd = ('123','456','789')
print(allowusers[0])
print(allowusers[-1])

结果:
root
redhat

2.切片

allowusers = ('root','westos','redhat')
allowpasswd = ('123','456','789')
print(allowusers[1:])
print(allowusers[:-1])
print(allowusers[::-1])

结果:
('westos', 'redhat')
('root', 'westos')
('redhat', 'westos', 'root')

3.重复

allowusers = ('root','westos','redhat')
print(allowusers * 3)

结果:
('root', 'westos', 'redhat', 'root', 'westos', 'redhat', 'root', 'westos', 'redhat')

4.连接

allowusers = ('root','westos','redhat')
print(allowusers + ('linux','python'))

结果:
('root', 'westos', 'redhat', 'linux', 'python')

5.成员操作符

allowusers = ('root','westos','redhat')
print('westos' in allowusers)
print('westos' not in allowusers)

结果:
True
False

6. for循环

allowusers = ('root','westos','redhat')
allowpasswd = ('123','456','789')
for user in allowusers:
    print(user)

for index,user in enumerate(allowusers):
    print('第%d个白名单用户: %s' %(index+1,user))

结果:
root
westos
redhat
第1个白名单用户: root
第2个白名单用户: westos
第3个白名单用户: redhat

7.zip:两个元组的元素之间一一对应

allowusers = ('root','westos','redhat')
allowpasswd = ('123','456','789')
for user,passwd in zip(allowusers,allowpasswd):
    print(user,':',passwd)

结果:
root : 123
westos : 456
redhat : 789

三.元组的常用方法

t = (1,2.3,True,'linux','westos')
print(t.count('linux')) #返回linux出现的次数
print(t.index(2.3))     #返回2.3的索引值

结果:
1
1

四.元组的应用场景

1.变量交换数值

a = 1
b = 2
b,a = a,b
#1.先把(a,b)封装成一个元组(1,2)
#2.b,a=a,b ---> b,a=(1,2)
#b = (1,2)[0] a = (1,2)[1]
print(a)
print(b)

结果:
2
1

2.打印变量的值

name = 'westos'
age = 11
t = (name,age)
print('name:%s,age:%d' %(name,age))
print('name:%s,age:%d' %t)

结果:
name:westos,age:11
name:westos,age:11

3.元组的赋值(有多少个元素,就用多少个变量接收)

t = ('westos',11,100)
name,age,score = t
print(name,age,score)

结果:
westos 11 100

scores = (100,89,45,78,65)
#转换成列表后应用sort()进行排序
scoresLi = list(scores)
scoresLi.sort()
print(scoresLi)

结果:
[45, 65, 78, 89, 100]

scores = (100,89,45,78,65)
#sorted函数可直接对元组排序
scores = sorted(scores)
print(scores) 

结果:
[45, 65, 78, 89, 100]

scores = (100,89,45,78,65)
minscore,*middlescore,maxscore = scores
print(minscore)
print(middlescore)
print(maxscore)

结果:
100
[89, 45, 78]
65

练习:去掉最高分和最低分后求平均成绩

程序内容:

score = (100,89,45,78,65)
scores = sorted(score)  #sorted函数可直接对元组排序
minscore,*middlescore,maxscore = scores
print(minscore)
print(middlescore)
print(maxscore)
print('最终成绩为: %.2f' %(sum(middlescore) / len(middlescore)))

结果:
45
[65, 78, 89]
100
最终成绩为: 77.33

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值