概述
1、什么是元组
- python内置数据结构之一,为不可变数据序列,不可进行增删改操作
- 可以存储任意数据类型
- 列表与元组最本质的区别就是一个是可变,一个为不可变。外在区别,列表用
[]
,而元组用()
问:为什么将元组设置为不可变类型?
- 多任务:很多人同时去操作这块数据(增删改)。
- 加锁:一个人在对数据进行更改的时候,对数据内容进行锁住,不允许其他人进行修改。
2、元组的创建
(1)第一种创建方式
t = (1,1.2,True,'star')
print(t)
print(type(t))
运行结果:
也可以不加括号:(如果只有一个元素,不加括号不就是字符串类型了???)
t = 'nae','bvk','svbjn'
print(t,type(t))
运行结果:
如果只有一个元素,我们给它加括号能保证它是元组类型嘛?
t = ('python')
print(type(t))
运行结果:
这就说明:
t = ('python',) ###注意加了“,”号
print(type(t))
运行结果:
(2)利用内置函数tuple创建:
###必须加括号
a= tuple(('nae','bvk','svbjn'))
print(a,type(a))
内置函数:
(3)间接修改元组
元组本身是不可变数据类型,但如果元组里面包含可变数据类型,此时便可间接修改元组的内容,而且列表的地址也不变
t1 = ([1,2,3],'4')
###列表是可以添加元素的
t1[0].append(4)
print(t1)
运行结果:
3、元组的6大特性
(1)索引
#定义元组
allowUsers = ('root','westos','redhat')
#索引(和列表索引一样)
print(allowUsers[0])
print(allowUsers[-1])
运行结果:
( 2).切片
#定义元组
allowUsers = ('root','westos','redhat')
#输出所有元素
print(allowUsers[:])
#输出除了第一个元素以外的所有元素,因为索引为1开始,所以不包括0即第一个元素
print(allowUsers[1:])
#输出除了最后一个元素以外的所有元素
print(allowUsers[:-1])
#逆序输出
print(allowUsers[::-1])
运行结果:
3).重复
#定义元组
allowUsers = ('root','westos','redhat')
#重复打印3次
print(allowUsers * 3)
运行结果:
( 4).连接
#定义元组
allowUsers = ('root','westos','redhat')
#加号表示连接
print(allowUsers + ('linux','python'))
运行结果:
各元组直接相加
name1 = 'linux','python','cc','java'
name2 = 'bakc','ffgwer','ferv'
name3 = ('vbsk',)
print(name1+name2+name3)
运行结果:
(5).成员操作符
#定义元组
allowUsers = ('root','westos','redhat')
#判断元素是否在元组中
print('westos' in allowUsers)
print('westos' not in allowUsers)
print('linux' in allowUsers)
运行结果:
6).元组的遍历(迭代)
#定义元组
allowUsers = ('root','westos','redhat')
for user in allowUsers:
print(user)
运行结果:
同时列出索引和数据:
#定义元组
allowUsers = ('root','westos','redhat')
#enumerate:同时列出数据和数据下标
for index,user in enumerate(allowUsers):
print('第%d个白名单用户: %s' % (index+1,user))
运行结果:
4、元组的常用方法
(1).count方法:查看某一元素出现的次数
#定义元组
t = (1,1.3,True,'westos','westos')
#count: 指定字符出现的次数
print(t.count('westos'))
运行结果:
(2).index方法:查看某一元素的索引
#定义元组
t = (1,1.3,True,'westos','westos')
#index: 返回指定字符对应的索引值
print(t.index(1.3))
运行结果:
5、元组的应用场景
(1).变量交换数值
a = 1
b = 2
b,a = a,b
print(a,b)
#执行过程:
#1).先把(a,b)封装成一个元组(1,2)
#2).b,a=a,b <---> b,a=(1,2)
#<----> b = (1,2)[0] , a = (1,2)[1]
运行结果:
(2).打印变量的值
name = 'westos'
age = 11
t = (name,age)
print('name:%s , age:%d' %(name,age))
print('name:%s , age:%d' %(t))
运行结果:
(3).元组的赋值
#有多少个元素,就用多少个变量接收
t = ('westos',17,100)
name,age,score = t
print(name,age,score)
运行结果:
模拟评委打分制度 |
---|
需求:
评委打分标准: 去掉一个最高分和一个最低分,求平均分
代码:
#1).定义元组
score = (100,88,97,65,47)
#2).排序
#sorted: 升序
scores = sorted(score)
print(scores)
#3).分离最大值和最小值,剥离出中间值; *表示多个
minscore,*middlescore,maxscore = scores
print(minscore)
print(middlescore)
print(maxscore)
#4)中间值求平均值
average = sum(middlescore) / len(middlescore)
print('最终成绩为: %.2f' % average)
运行结果:
最后
以上就是爱撒娇薯片为你收集整理的python菜鸟的进阶路之元组(元组没有sort排序)的全部内容,希望文章能够帮你解决python菜鸟的进阶路之元组(元组没有sort排序)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复