我是靠谱客的博主 爱撒娇薯片,这篇文章主要介绍python菜鸟的进阶路之元组(元组没有sort排序),现在分享给大家,希望可以做个参考。

1、什么是元组

  • python内置数据结构之一,为不可变数据序列,不可进行增删改操作
  • 可以存储任意数据类型
  • 列表与元组最本质的区别就是一个是可变,一个为不可变。外在区别,列表用[] ,而元组用()

问:为什么将元组设置为不可变类型?
在这里插入图片描述

  • 多任务:很多人同时去操作这块数据(增删改)。
  • 加锁:一个人在对数据进行更改的时候,对数据内容进行锁住,不允许其他人进行修改。

2、元组的创建

(1)第一种创建方式

复制代码
1
2
3
4
t = (1,1.2,True,'star') print(t) print(type(t))

运行结果:
在这里插入图片描述
也可以不加括号:(如果只有一个元素,不加括号不就是字符串类型了???)

复制代码
1
2
3
t = 'nae','bvk','svbjn' print(t,type(t))

运行结果:
在这里插入图片描述
如果只有一个元素,我们给它加括号能保证它是元组类型嘛?

复制代码
1
2
3
t = ('python') print(type(t))

运行结果:
在这里插入图片描述

这就说明:
在这里插入图片描述

复制代码
1
2
3
t = ('python',) ###注意加了“,”号 print(type(t))

运行结果:
在这里插入图片描述

(2)利用内置函数tuple创建:

复制代码
1
2
3
4
###必须加括号 a= tuple(('nae','bvk','svbjn')) print(a,type(a))

内置函数:
在这里插入图片描述
(3)间接修改元组

元组本身是不可变数据类型,但如果元组里面包含可变数据类型,此时便可间接修改元组的内容,而且列表的地址也不变

复制代码
1
2
3
4
5
t1 = ([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') #重复打印3print(allowUsers * 3)

运行结果:
在这里插入图片描述
( 4).连接

复制代码
1
2
3
4
5
#定义元组 allowUsers = ('root','westos','redhat') #加号表示连接 print(allowUsers + ('linux','python'))

运行结果:
在这里插入图片描述
各元组直接相加

复制代码
1
2
3
4
5
name1 = '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
10
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).打印变量的值

复制代码
1
2
3
4
5
6
name = '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菜鸟内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部