python中元组简介

元组

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

1. 元组的创建

t = (1,2.3,True,'star')
print(t)
print(type(t))
```javascript
#元组里面包含可变数据类型,可以间接修改元组的内容
t1 = ([1,2,3],4)
t1[0].append(4)
print(t1)

#元组如果只有一个元素的时候,后面一定要加逗号,否则数据类型不确定
t2 = ('hello')
t3 = (1,)
print(type(t2))
print(type(t3))

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

([1, 2, 3, 4], 4)

<class 'str'>     ##就不是元组的类型了
<class 'tuple'>
  1. 元组的特性(索引,切片,重复,连接,成员操作符,迭代)
  • 索引 切片
allowUsers = ('root','westos','redhat')
allowPasswd = ('123','456','789')
print(allowUsers[0])
print(allowUsers[-1])
print(allowUsers[1:])
print(allowUsers[2:])
print(allowUsers[:-1])
print(allowUsers[::-1])

输出结果:
root
redhat
('westos', 'redhat')
('redhat',)
('root', 'westos')
('redhat', 'westos', 'root')
  • 重复
allowUsers = ('root','westos','redhat')
allowPasswd = ('123','456','789')
print(allowUsers * 3)

结果:
('root', 'westos', 'redhat', 'root', 'westos', 'redhat', 'root', 'westos', 'redhat')
  • 连接
allowUsers = ('root','westos','redhat')
allowPasswd = ('123','456','789')
print(allowUsers + ('linux','python'))

结果:
('root', 'westos', 'redhat', 'linux', 'python')
  • 成员操作符
allowUsers = ('root','westos','redhat')
allowPasswd = ('123','456','789')
print('westos' in allowUsers)
print('westos' not in allowUsers)

结果:
True
False
  • 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
  • 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
  1. 元组的常用方式与应用场景
    1. 元组的常用方法
    (1)索引
    (2)出现的次数
t = (1,2.3,True,'westos','westos')
print(t.count('westos'))    ##出现次数
print(t.index(2.3))    ##索引

结果:
2
1

2. 元组的应用场景
(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

(4)元组排序

  • 类型转换为列表用.sort()排序
score = (100,89,45,78,65)
scoreLi = list(score)         ##转换为列表的输出为:[100, 89, 45, 78, 65]
scoreLi.sort()        ##排序后:[45, 65, 78, 89, 100]
print(scoreLi)

结果:
[45, 65, 78, 89, 100]
  • sorted()直接排序
score = (100,89,45,78,65)
scores = sorted(score)
print(scores)
结果:
[45, 65, 78, 89, 100]

(5)去掉一个最大数,去掉一个最小数,求平均成绩

score = (100,89,45,78,65)
scores = sorted(score)     ##scores = [45, 65, 78, 89, 100]
minscore,*middlescore,maxscore = scores  ##用排序后的
print(minscore)
print(middlescore)
print(maxscore)
print('最终成绩为: %.2f' %(sum(middlescore) / len(middlescore)))

结果:
45
[65, 78, 89]      ##注意  *middlescore 的用法
100
最终成绩为: 77.33
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值