导图社区 Python数据类型 — 元组
Python数据类型,从整体来看,以数字、文本为基础,用列表、字典、元组、集合作为容器;以性质划分,又分为可变与不可变数据。 本篇思维导图为大家讲解的即是Python中作为容器的不可变数据类——元组,以“时间顺序”将内容拆解为"创建、引用、操作"三个部分。 1、元组创建,由基础的圆括号到推导式创建,因为是圆括号,所以要避免被用成运算符;推导式与列表不同,是元组的迭代器。 2、元组引用,同列表一样,即索引与切片; 3、元组操作按照操作方式,分为“运算、函数、方法”三种方式,但是因为是不可变数据,所以在方法上列表适用的,元组并不适用。 本篇导图逻辑清晰、内容完整,希望能对想要深入学习Python的您带来帮助!
编辑于2024-01-30 13:21:11当运行程序时,数据会以变量、序列或者对象的形式,在程序中临时存储。但当程序运行结束之后,数据也随之消失。如果我们想长期保存数据,那么就需要将数据存储到磁盘文件中,这就需要通过Python读写文件,即I/O操作。I/O操作有三步:1、打开文件;2、文件读写;3、关闭文件(或者编写成with语句)。 本篇思维导图,即是围绕而操作的核心——文件对象(file_obj)来展开讲解,分为2个部分:一、file_obj的创建(open函数);二、file_obj的方法调用(读取文件、写入文件、文件指针以及最后的关闭文件)。 希望通过本篇思维导图,能帮助你对使用Python进行文件读写有更深的理解与认识!
Python数据类型,从整体来看,以数字、文本为基础,用列表、字典、元组、集合作为容器;以性质划分,又分为可变与不可变数据。 本篇思维导图为大家讲解的即是Python中作为基础数据的数字(包含整型、浮点型、复数)。 数字本身的内容不多,重点在其有多样的表现形式。然后,对数字的相关处理方式(运算 函数)。 值得注意的是,整型就是整数,但是,浮点型不等于小数,也表达不了分数。所有针对于小数及分数的运算,补充了Decimal类、Praction类的讲解部分。 最后,对于数字运算有重要关系的math模块,将相关的函数及特殊值进行汇总,希望对大家在用到数学运算的时侯带来帮助。 本篇导图逻辑清晰、内容完整,希望能对想要深入学习Python的您带来帮助!
Python数据类型,从整体来看,以数字、文本为基础,用列表、字典、元组、集合作为容器;以性质划分,又分为可变与不可变数据。 本篇思维导图为大家讲解的即是Python中作为基础数据的文本(即字符串),以“时间顺序”将内容拆解为"创建、引用、操作、输出"四个部分。 1、字符串由引号直接创建,一些特殊的内容需要用到转义字符;当然,还需特别注意引号前的字母,对字符内容存在一定的影响; 2、字符串的引用,同列表一样,即索引与切片;但其属于不可变数据类型,不支持就地更改; 3、字符串的操作按照操作方式,分为“运算、函数、方法”三种方式,其字符串的方法非常丰富,特别将方法进行详细的梳理归纳,以便我们能更好的使用。 4、字符串输出部分,重点讲格式化输出,并对字符呈现起着关键作用的spec字段详细讲解,以便我们的文字内容能够更好的呈现。 本篇导图逻辑清晰、内容完整,希望能对想要深入学习Python的您带来帮助!
社区模板帮助中心,点此进入>>
当运行程序时,数据会以变量、序列或者对象的形式,在程序中临时存储。但当程序运行结束之后,数据也随之消失。如果我们想长期保存数据,那么就需要将数据存储到磁盘文件中,这就需要通过Python读写文件,即I/O操作。I/O操作有三步:1、打开文件;2、文件读写;3、关闭文件(或者编写成with语句)。 本篇思维导图,即是围绕而操作的核心——文件对象(file_obj)来展开讲解,分为2个部分:一、file_obj的创建(open函数);二、file_obj的方法调用(读取文件、写入文件、文件指针以及最后的关闭文件)。 希望通过本篇思维导图,能帮助你对使用Python进行文件读写有更深的理解与认识!
Python数据类型,从整体来看,以数字、文本为基础,用列表、字典、元组、集合作为容器;以性质划分,又分为可变与不可变数据。 本篇思维导图为大家讲解的即是Python中作为基础数据的数字(包含整型、浮点型、复数)。 数字本身的内容不多,重点在其有多样的表现形式。然后,对数字的相关处理方式(运算 函数)。 值得注意的是,整型就是整数,但是,浮点型不等于小数,也表达不了分数。所有针对于小数及分数的运算,补充了Decimal类、Praction类的讲解部分。 最后,对于数字运算有重要关系的math模块,将相关的函数及特殊值进行汇总,希望对大家在用到数学运算的时侯带来帮助。 本篇导图逻辑清晰、内容完整,希望能对想要深入学习Python的您带来帮助!
Python数据类型,从整体来看,以数字、文本为基础,用列表、字典、元组、集合作为容器;以性质划分,又分为可变与不可变数据。 本篇思维导图为大家讲解的即是Python中作为基础数据的文本(即字符串),以“时间顺序”将内容拆解为"创建、引用、操作、输出"四个部分。 1、字符串由引号直接创建,一些特殊的内容需要用到转义字符;当然,还需特别注意引号前的字母,对字符内容存在一定的影响; 2、字符串的引用,同列表一样,即索引与切片;但其属于不可变数据类型,不支持就地更改; 3、字符串的操作按照操作方式,分为“运算、函数、方法”三种方式,其字符串的方法非常丰富,特别将方法进行详细的梳理归纳,以便我们能更好的使用。 4、字符串输出部分,重点讲格式化输出,并对字符呈现起着关键作用的spec字段详细讲解,以便我们的文字内容能够更好的呈现。 本篇导图逻辑清晰、内容完整,希望能对想要深入学习Python的您带来帮助!
Python - 基础系列
三、元组操作
制图人:咖啡喵 制图时间:2024/1/27 制图软件:mindmaster
运算符
元组运算
查找元素
in
elem in tuple
True / False
not in
elem not in tuple
True / False
元组拼接
+
new_tuple = tuple1 + tuple2
*
new_tuple = tuple * N
元组比较
== 、!=
比较2个元组是否相同
>=><=<
将2个元组逐元素进行比较
使用函数
参 数
数学统计
计 数
len(obj)
求 和
sum(iterable[, start])
最大值
max(iterable[, key=func])
最小值
min(iterable[, key=func])
逻辑校验
any(iterable)
元素是否有真
all(iterable)
元素是否全真
True/False
排 序
list = sorted(iterable[, key, reverse])
iterator = reversed(sequence)
迭 代
obj = enumerate(iterable[, start])
obj
iterable,一系列元组 (num, elem)
复 制
import copy
深拷贝
tuple = copy.deepcopy(tuple)
复制的深度会扩展到各个层级
递 归
from functools import reduce
value = reduce(function, sequence[, initial])
function
包含2个参数
返回1个值
initial
初始值,添加为序列头部
sequence
依次取2个值作为参数
func
对 象
调用方法
元素计数
number = tuple.count(value)
查找元素
first_index = tuple.index(value[, start, stop])
元组与列表的异同
元组
容 器
有序集合
与列表属性基本一致
不可变
比如列表修改类的方法,元组不支持
元 组
不
支
持
增加元素
list.append
list.insert
list.extend
减少元素
list.pop
list.remove
list.clear
元素排序
list.sort
list.reverse
The end.
Python数据类型 —— 元组
Python 基础系列
制图人:咖啡喵 制图时间:2024/1/27 制图软件:mindmaster
数据类型
基 础
文本
数字
容 器
列表
字典
元祖
集合
文本
数字
元组
不可变
可 变
列表
字典
集合
元组
一
元组创建
二
元组引用
三
元组操作
一、元组创建
1
( )(圆括号)
tuple = (elem1, elem2, ...)
1||| a_tuple = (1, 2, 3, 4)
创建数据
2||| (elem1, )
元组仅1个元素,其后应有 , (逗号)
3||| tuple()
创建空元组,需用tuple函数
元组,由圆括号 ( ) 创建,但圆括号也是运算符,所以与其他容器不同,不能用圆括号直接创建空元组;如果元组只有1个元素,元素后要有 ,(逗号)
2
创建多维元组
matrix_tuple = ((init, ) * ncols, ) * nrows
init
初始值
ncols
行数
nrows
列数
3
元组的推导式
通过for循环在元组中生成值
创建的是元组生成器,不是元组
单循环
tuple_iterator = [elem for x in iterable]
单循环 单条件
tuple_iterator = [elem for x in iterable if expr(x)]
单循环 多条件
tuple_iterator = [elem for x in iterable if expr1(x) if expr2(x)]
循环嵌套
tuple_iterator = [elem for iter in iterable for x in iter]
elem
x
expr(x)
func(x)
elem可以直接使用x或者x的表达式/函数
条件筛选
elem if expr1(x) else expr2(x)
4
其他方法创建
tuple = tuple(iterable)
二、元组引用
索引
取值
value = tuple[index]
index
非负数
0 ~ N-1
负 数
-N ~ -1
N
元组长度
二维元组
value = list[row_index][col_index]
切片
子元组
sub_tuple = tuple[beg : end : step]
口诀:含左不含右,空白取到头
step < 0
tuple[end : beg : step]
反转访问元组元素的方向
复制元组
tuple_copy = list[:]
浅拷贝
To be continued!!!
Python语法基础扩展 —— 列表&元组
【二】元组(tuple),是一个“有序”且“不可变”的容器,在里面可以存放多个“不同类型”的元素。
一、 元组的创建
1. 使用 () 直接创建
(1) tuple_name = (element1, element2, ... ,elementN)
其中,tuple_name 表示变量名,element1 ~ elementN 表示元组元素。
(2) 创建一个1个元素的元组
one_tuple = (element1, )
必须在元素后,添加逗号。如果不带逗号,会将左右括号默认视为运算符。
(3) 创建一个空元组
empyt_tuple = tuple()
【不能直接 () ,会被识别为一个运算符(括号)】
2. 通过函数创建元组
tuple()函数
tuple(iterable=())
参数:iterable
如果没有指定,则 tuple() 返回一个空元组
如果指定,则iterable必须是一个可迭代对象
如,range()、str、tuple、dict、set、……
3. 元组的推导式
与列表的推导式不同,元组的推导式返回的是生成器,需通过for循环访问元素
基本格式
一个for循环推导
tuple_variable = (x for x in iterable)
复合情况
for + func/expr
tuple_variable = (func(x)/expr(x) for x in iterable)
for + if1+if2+...+ifN
tuple_variable = (x for x in iteralbe if cond1(x) if cond2(x) ... condN(x))
for + if-else
tuple_variable = (expr1(x) if cond(x) else expr2(x) for x in iterable)
for + for
tuple_variable = (x for item in iterable for x in item)
4. 元组的嵌套
元组也属于容器,内部可以存放各种数据,也支持其他元组的嵌套
二维元组有两层圆括号
((1,2,3), (4,5,6))
二、 访问元组中的元素
I. 索引(Index),访问元组中的某个元素【得到的是一个元素的值】
tuple_name[i],其中,tuple_name 表示元组名字,i 表示索引值。
i
从左往右索引时,索引号基数为0
从右往左索引时,索引号基数为-1
II. 切片,访问元组中的一组元素【得到的是一个新的子元组】
tuple_name[start : end : step]
tuple_name,元组名字
start,起始索引
end,结束索引
step,步长
step > 0,正向截取
step < 0,反向截取
切片操作
tuple[a:b:c]
以c为步长,从a开始截取到b前(不含b)的一组元素
tuple[:b]
从0开始,截取到b前(不含b)的一组元素
tuple[a:]
从a开始,截取到末尾的一组元素
tuple[:]
截取整个元组
tuple[::c]
以c为步长,在整个元组中提取一组元素
tuple[::-1]
反向截取
三、 获取元组的相关信息
获取元组tuple长度
len(tuple)
获取元组tuple的最大值(元素)
max(tuple)
获取元组tuple的最小值(元素)
min(tuple)
元组tuple中,是否至少一个元素为真
any(tuple)
元组tuple中,是否所有的元素均为真
all(tuple)
四、 元组相关的操作
元组与列表的对比: 相同点: 元组与列表有很多相同点,所以有很多相同操作: 不同点: 1、列表,可变数据类型,创建之后,内部元素可以修改(追加、修改、删除) 2、元组,不可变数据类型,创建之后,内部元素不可修改(列表中的很多方法,元组不可使用)
1. 检测列表中的元素
(1) 判定列表中的元素,是否存在
由于列表内部是由多个元素组成,可以通过in来判断元素是否在列表中。 element in list :在 → True; 不在 → False elment not in list:不在 → True; 在 → False
in/not in
返回 True/False
(2) 根据某个值,获取在元组中的出现的元素个数
tuple.count(value)
返回值:返回value在列表中出现的次数
(3) 根据某个值,返回找到的第一个元素的索引【value若未发现,则会报错】
tuple.index(value, start=0, stop=9223372036854775807)
返回值:根据value,返回在列表中的第一个索引;
2. 新增元组中的元素【不可对元组直接修改】
I. 列表中的增加元素的方法,元组不可用【不可对元组直接修改】
Warning! 列表中的方法 append()、insert()、extend() 方法,在元组中不适用
II. 相加/相乘,会生成一个新的元组
(1) 相加,tuple1+tuple2,生成一个新的元组(由两个列表的元素组成)
(2) 相乘,元组 * 整型(N),生成一个新的元组(由原元组的元素扩充N倍)
3. 修改元组中的元素【不可对元组直接修改】
(1) Error:tuple_name[i] = object
不可通过索引元素,直接赋值
(2) Error:tuple_name[start:end] = object
也不可通过切片截取元组的某一段,直接赋值
(3) But: 如果元组中的可变数据类型的元素,是可以作为对象,对其元素进行修改的
tuple_name = (list1, list2, ...)
×:tuple_name[0] = new_object
tuple_name[0]为列表list1,不可将list1替换
√:tuple_name[0][i] = new_object
可以对列表list1中的元素进行修改
4. 删除元组【不可对元组直接修改】
(1) 列表中的删除元素的方法,元组不可用【不可对元组直接修改】
Warning! 列表中的方法 pop()、remove()、clear() 方法,在元组中不适用
(2) del命令 删除整个元组
del tuple_name]
删除整个元组
Error:del tuple[i]
不可删除元组中的某个元素
Error:del tuple[a:b]
不可删除元组的某组元素
5. 对元组中的元素排序
(1) 列表中的排序方法,元组不可用【不可对元组直接修改】
Warning! 列表中的方法 sort()()、reverse() 方法,在元组中不适用
(2) 内置函数sorted(),可传入元组进行排序
sorted(iterable, key=None, reverse=False)
参数
iterable
可迭代对象
key
传递一个函数名称;将可迭代对象中的每一个元素作为参数,传入到这个函数中;再根据其返回值,来进行排序
reverse
排序规则,True 降序 , False 升序(默认)
返回值
传入一个元组,对元组中的元素排序,返回一个列表
-----------------------------------------End------------------------------------------------