1、什么是元组
- python内置数据结构之一,为不可变数据序列,不可进行增删改操作
- 可以存储任意数据类型
- 列表与元组最本质的区别就是一个是可变,一个为不可变。外在区别,列表用
[]
,而元组用()
问:为什么将元组设置为不可变类型?
- 多任务:很多人同时去操作这块数据(增删改)。
- 加锁:一个人在对数据进行更改的时候,对数据内容进行锁住,不允许其他人进行修改。
2、元组的创建
(1)第一种创建方式
复制代码
1
2
3
4t = (1,1.2,True,'star') print(t) print(type(t))
运行结果:
也可以不加括号:(如果只有一个元素,不加括号不就是字符串类型了???)
复制代码
1
2
3t = 'nae','bvk','svbjn' print(t,type(t))
运行结果:
如果只有一个元素,我们给它加括号能保证它是元组类型嘛?
复制代码
1
2
3t = ('python') print(type(t))
运行结果:
这就说明:
复制代码
1
2
3t = ('python',) ###注意加了“,”号 print(type(t))
运行结果:
(2)利用内置函数tuple创建:
复制代码
1
2
3
4###必须加括号 a= tuple(('nae','bvk','svbjn')) print(a,type(a))
内置函数:
(3)间接修改元组
元组本身是不可变数据类型,但如果元组里面包含可变数据类型,此时便可间接修改元组的内容,而且列表的地址也不变
复制代码
1
2
3
4
5t1 = ([1,2,3],'4') ###列表是可以添加元素的 t1[0].append(4) print(t1)
运行结果:
3、元组的6大特性
(1)索引
复制代码
1
2
3
4
5
6
7#定义元组 allowUsers = ('root','westos','redhat') #索引(和列表索引一样) print(allowUsers[0]) print(allowUsers[-1])
运行结果:
( 2).切片
复制代码
1
2
3
4
5
6
7
8
9
10
11#定义元组 allowUsers = ('root','westos','redhat') #输出所有元素 print(allowUsers[:]) #输出除了第一个元素以外的所有元素,因为索引为1开始,所以不包括0即第一个元素 print(allowUsers[1:]) #输出除了最后一个元素以外的所有元素 print(allowUsers[:-1]) #逆序输出 print(allowUsers[::-1])
运行结果:
3).重复
复制代码
1
2
3
4
5#定义元组 allowUsers = ('root','westos','redhat') #重复打印3次 print(allowUsers * 3)
运行结果:
( 4).连接
复制代码
1
2
3
4
5#定义元组 allowUsers = ('root','westos','redhat') #加号表示连接 print(allowUsers + ('linux','python'))
运行结果:
各元组直接相加
复制代码
1
2
3
4
5name1 = 'linux','python','cc','java' name2 = 'bakc','ffgwer','ferv' name3 = ('vbsk',) print(name1+name2+name3)
运行结果:
(5).成员操作符
复制代码
1
2
3
4
5
6
7#定义元组 allowUsers = ('root','westos','redhat') #判断元素是否在元组中 print('westos' in allowUsers) print('westos' not in allowUsers) print('linux' in allowUsers)
运行结果:
6).元组的遍历(迭代)
复制代码
1
2
3
4
5#定义元组 allowUsers = ('root','westos','redhat') for user in allowUsers: print(user)
运行结果:
同时列出索引和数据:
复制代码
1
2
3
4
5
6#定义元组 allowUsers = ('root','westos','redhat') #enumerate:同时列出数据和数据下标 for index,user in enumerate(allowUsers): print('第%d个白名单用户: %s' % (index+1,user))
运行结果:
4、元组的常用方法
(1).count方法:查看某一元素出现的次数
复制代码
1
2
3
4
5#定义元组 t = (1,1.3,True,'westos','westos') #count: 指定字符出现的次数 print(t.count('westos'))
运行结果:
(2).index方法:查看某一元素的索引
复制代码
1
2
3
4
5#定义元组 t = (1,1.3,True,'westos','westos') #index: 返回指定字符对应的索引值 print(t.index(1.3))
运行结果:
5、元组的应用场景
(1).变量交换数值
复制代码
1
2
3
4
5
6
7
8
9
10a = 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).打印变量的值
复制代码
1
2
3
4
5
6name = 'westos' age = 11 t = (name,age) print('name:%s , age:%d' %(name,age)) print('name:%s , age:%d' %(t))
运行结果:
(3).元组的赋值
复制代码
1
2
3
4
5#有多少个元素,就用多少个变量接收 t = ('westos',17,100) name,age,score = t print(name,age,score)
运行结果:
模拟评委打分制度 |
---|
需求:
评委打分标准: 去掉一个最高分和一个最低分,求平均分
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22代码: #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菜鸟内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复