Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之元组类型(tuple)
元组!在Python中元组是属于列表的一种延伸,也是一种有序集合,成为一种只读列表,即数据可以被查找,不能被修改,列表的切片操作同样适用于元组。
特点:1. 与列表非常相似。
2. 一旦初始化就不能修改(这句话的意思是:元素不可变,但是元素中的值可以改)。
3. 使用小括号。
4. 如果元素当中只有一个元素(12, ),书写习惯上也应该加上一个逗号。原因和列表这个地方的原因是一样的。
1. 元组的简单应用
1.1 创建元组
格式:元组名 = (元组选项1,元组选项2,元组选项n)
创建一个空元组和带有元素的元组。
- # 创建空的元组
- tuple1 = ()
- print(tuple1)
- # 输出结果:()
- # 创建带有元素的元组
- # 元组中的元素的类型可以不同
- tuple2 = (1, 2, 3, "good", True)
- print(tuple2)
- # 输出结果:(1, 2, 3, 'good', True)
- # 定义只有一个元素的元祖
- tuple3 = (1, )
- print(tuple3)
- print(type(tuple3))
- # 输出结果:
- # (1,)
- # <class 'tuple'>
1.2 元组的常规操作
1.2.1 元素元素的访问
- # 元组元素的访问
- # 格式:元组名[下标]
- tuple4 = (1, 2, 3, 4, 5)
- print(tuple4[0])
- # print(tuple4[5]) # 下标越界报错
- print(tuple4[-1]) # 获取最后一个元素
- # 输出结果:
- #
- #
1.2.2 元组元素的修改
元组不允许修改元素,但是元组当中元素的值(二级目录一下的值可以修改)
- # 修改元组
- tuple5 = (1, 2, 3, 4, [5, 6, 7])
- tuple5[-1][0] = 500 # 改变里面的list可以变
- print(tuple5)
- # 输出结果:(1, 2, 3, 4, [500, 6, 7])
- # 元组的元素不能修改
- tuple6 = (1, 2, 3, "good", True)
- tuple6[3] = "bad" # 改变里面的list可以变
- print(tuple6)
- # 输出结果:
- # Traceback (most recent call last):
- # File "C:/Users/Administrator/Desktop/Python-1704/day04/tuple(元组).py", line 51, in <module>
- # tuple6[3] = "bad" # 改变里面的list可以变
- # TypeError: 'tuple' object does not support item assignment
1.2.3 元组元素的删除
- # 删除元组
- tuple6 = (1, 2, 3)
- del tuple6[0]
- del tuple6
- print(tuple6)
- # 输出结果:
- # 不允许删除元组的元素
- # Traceback (most recent call last):
- # File "C:/Users/Administrator/Desktop/Python-1704/day04/tuple(元组).py", line 67, in <module>
- # del tuple6[0]
- # TypeError: 'tuple' object doesn't support item deletion
- # 删除整个元组
- # Traceback (most recent call last):
- # File "C:/Users/Administrator/Desktop/Python-1704/day04/tuple(元组).py", line 69, in <module>
- # print(tuple6)
- # NameError: name 'tuple6' is not defined
1.2.4 元组的组合
- # 元组的组合
- t7 = (1, 2, 3)
- t8 = (4, 5, 6)
- t9 = t7 + t8
- print(t7 + t8)
- print(t7, t8)
- print(t9)
- # 输出结果:
- # (1, 2, 3, 4, 5, 6)
- # (1, 2, 3) (4, 5, 6)
- # (1, 2, 3, 4, 5, 6)
1.2.5 元组的重复
- # 元组重复
- t10 = (1, 2, 3)
- print(t10 * 3)
- # 输出结果:(1, 2, 3, 1, 2, 3, 1, 2, 3)
1.2.6 判断元素是否在元组中,返回值为False 或 True,成员运算符(in,not in);身份运算符同理不再举例。
- # 判断元素是否在元组中
- t11 = (1, 2, 3)
- print(1 in t11)
- # 输出结果:True
1.2.7 元组的截取(切片)
格式:[[start] [,end] [,step]],开始位置,结束位置,步长
注意:几到几的指针是放到元素的前面。
- # 元组的截取
- # 格式:元组名[开始下标,结束下标]
- # 从开始下标开始截取,截取到结束下标之前
- t12 = (1, 2, 3, 4, 5, 6, 7, 8, 9)
- print(t12[3:7])
- print(t12[3:])
- print(t12[:7])
- # 输出结果:
- # (4, 5, 6, 7)
- # (4, 5, 6, 7, 8, 9)
- # (1, 2, 3, 4, 5, 6, 7)
1.2.8 二维元组和三维元组
二维元组和三维元组,以及其他高维元组的逻辑是在元组内在表示一组元组元素。访问也是通过双下标、三下标或高下标的方式访问,操作高维元组和操作一维元组的逻辑是一样的。
- # 二位元组,及其以上元组,元素为一维元组的元组
- t13 = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
- print(t13[1][1])
- # 输出结果:访问第二个元组中的第二个元素
- #
2. 元组的常见内建函数的应用
函:len
语:len(tuple)
用:返回元组中元素的个数
- # 元组的方法
- # len 返回元组中元素的个数
- t14 = (1, 2, 3, 4, 5)
- print(len(t14))
- # 输出结果:
- #
函:max()、min()
语:max(tuple)、min(tuple)
用:返回元组中的最大值、返回元组中的最小值
- # max()返回元组中的最大值
- # min()返回元组中的最小值
- print(max((5, 6, 7, 8, 9)))
- print(min((5, 6, 7, 8, 9)))
- # 输出结果:9 5
3. 元组常用技巧
3.1 将列表转换为元组
- # 将列表转为元组
- list = [1, 2, 3]
- t15 = tuple(list)
- print(t15)
- print(type(t15))
- # 输出结果:
- # (1, 2, 3)
- # <class 'tuple'>
3.2 元组的遍历
函:enumerate
语:enumerate(e, start = )
用:枚举函数,start= 表示从数字几开始记录枚举的起始,如果是0,就为0,1,2,3,4......为序号开始标记;如果为1,就为1,2,3,4,5,为序号开始标记;默认为从0开始。
- # 元组的历编
- for i in (1, 2, 3, 4, 5):
- print(i, end="")
- print("\n")
- # 输出结果:12345
- # 通过枚举的方式遍历元组元素
- for i, v in enumerate((1, 2, 3, 4, 5), 1):
- print(i, v)
- # 输出结果:
- # 1 1
- # 2 2
- # 3 3
- # 4 4
- # 5 5
Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之元组类型(tuple)的更多相关文章
- Python笔记_第一篇_面向过程_第一部分_2.内存详解
Python的很多教材中并没有讲内存方面的知识,但是内存的知识非常重要,对于计算机工作原理和方便理解编程语言是非常重要的,尤其是小白,因此需要把这一方面加上,能够更加深入的理解编程语言.这里引用了C语 ...
- Python笔记_第一篇_面向过程_第一部分_1.Python环境的设置(含虚拟机)
*Python环境的设置 Python的环境设置也就是所需工作平台的软件搭建.常用的搭建平台IOS系统+Linux系统和Windows+Linux系统的搭建.这里主要说明的是Windows+Linux ...
- Python笔记_第一篇_面向过程_第一部分_6.条件控制语句(if)
Python正如其他语言一样存在两种常用的逻辑判断体(也叫结构化程序设计).所谓逻辑判断体是通过你想要完成的编程思路,通过在逻辑判断体中的相互判断和作用得到你想要的结果.逻辑判断体也叫控制语句,Pyt ...
- Python笔记_第二篇_面向过程_第二部分_2.路径、栈和队列、内存修改
这一部分分三个主题进行讲解,主要为后面的模块.包.第三方库的概念补充一些相关的内容. 1. 路径(Path): 相对路径和绝对路径. 举例1:我们先导入一个os库(模块)来观察一下路径 import ...
- 四、java基础-面向过程_对象_类中可出现的因素
1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...
- python自动化开发-[第五天]-面向过程、模块、包
今日概要: 1.内置模块 2.协程函数 3.递归 4.面向过程编程与函数编程 5.模块 6.包 7.re正则 一.内置模块 1.匿名函数lambda 定义:匿名函数通常是创建了可以被调用的函数,它返回 ...
- python第四周迭代器生成器序列化面向过程递归
第一节装饰器复习和知识储备------------ 第一节装饰器复习和知识储备------------ def wrapper(*args,**kwargs): index(*args,**kwa ...
- [Python笔记]第八篇:模块
本篇主要内容:python常用模块用法介绍 什么是模块 模块,用一大段代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性 ...
- [Python笔记]第三篇:深浅拷贝、函数
本篇主要内容:深浅拷贝,自定义函数,三目运算,lambda表达式, 深浅拷贝 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import ...
随机推荐
- Web基础之Maven
Web基础之Maven Maven是一个优秀的项目管理工具,可以很轻松的管理项目. POM和LifeCycle POM:Project Object Model.也就是项目模型,简单来说就是对项目进行 ...
- JQ+AJAX 发送异步请求
1. load() ; 作用:通过ajax 请求从服务器加载数据,并添加到符合要求的节点上 用法:$node.load(请求地址,请求参数) 请求参数写法: --"username=admi ...
- xxe
XXE xml external entity injection xml外部实体注入 概述 xml是可扩展的标记语言,涉及被用来传输.存储数据 html被用来显示数据 其中xml的标签没有预定义的, ...
- nginx安装出现:cp: `conf/koi-win' and `/application/nginx-1.6.3/conf/koi-win' are the same file
nginx编译安装时make出现如下错误 ]: Leaving directory `/application/nginx-' make -f objs/Makefile install ]: Ent ...
- hive的join优化
“国际大学生节”又称“世界大学生节”.“世界学生日”.“国际学生日”.1946年,世界各国学生代表于布拉格召开全世界学生大会,宣布把每年的11月17日定为“世界大学生节”,以加强全世界大学生的团结和友 ...
- MySQL的异常问题
异常问题
- HDU - 1150 Machine Schedule(二分匹配---最小点覆盖)
题意:有两台机器A和B,A有n种工作模式(0~n-1),B有m种工作模式(0~m-1),两台机器的初始状态都是在工作模式0处.现在有k(0~k-1)个工作,(i,x,y)表示编号为i的工作可以通过机器 ...
- POJ - 3661 Running(dp---背包)
题意:Bessie要运动N分钟,已知每一分钟可以跑的距离,每一分钟可选择跑或者不跑,若选择跑,疲劳度加1,但疲劳度不能超过M:若选择不跑,则每过一分钟,疲劳度减1,且只有当疲劳度减为0时可以继续跑.求 ...
- JZOJ-2019-11-7 A组
T1 Input 从文件 awesome.in 中读入数据. 第一行 2 个用空格隔开的整数 \(n\), \(P\). 第二行 n 个用空格隔开的整数 \(A_1, \cdots , A_n\). ...
- BZOJ 4084 [Sdoi2015]双旋转字符串
题解:hash 至今不会unsigned long long 的输出 把B扔进map 找A[mid+1][lenA]在A[1][mid]中的位置 把A[1][mid]贴两遍(套路) 枚举A[mid+1 ...