本文目录一览:
- python什么是元组?
- Python中的元组(Tuple)
- python里面元组是什么意思?
- Python元组常用操作小技巧
- python自学笔记13:元组和字典的操作
- 学习Python元组,有哪些必须要掌握的内容
python什么是元组?
Python 的元组与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号定义,列表使用方括号定义。 例如:
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5)
元组与列表类似,下标索引从0开始,使用下标来访问数据。但元祖中,元素值是不允许修改的。
Python中的元组(Tuple)
在Python中,元组(Tuple)与列表(List)类似,也是一个有序的序列,但元组是一个不可变对象,其一旦初始化后便无法进行修改。
一般在创建元组时,分为创建空元组和非空元组,其创建方式如下:
从上面可以看到,我们只需要把元组的所有元素放在小括号 ()
里面,每个元素之间通过逗号 ,
间隔起来即可,当然和列表一样,元组中同样允许存放不同数据类型的元素。
元组中使用的 ()
是常见的数学运算符,如果参考列表的创建,如下:
从上面可以看到,我们创建出来的压根就不是元组类型。那么我们想创建一个只包含一个元素的元组时,需要怎么创建呢?
很简单,只需要在元素后加上一个逗号 ,
,这样创建出来就是一个元组。
当我们需要访问元组中的元素,可以类似列表一样通过索引取值或切片取值。
如果访问的索引不存在,那么会报错:IndexError: tuple index out of range
在元组中,可以像列表一样使用切片,语法为:元组[start:end:step]
,通过切片可以获取到元组中指定范围的元素,返回结果是一个新元组。在这里,需要注意切片的规则是左闭右开,也就是说包含头部 start
,但不包含尾部 end
,而 step
则表示切片的步长,需要每间隔 step
个元素取一次。
在上面我们提到了元组是不可变的,这就意味着我们创建一个元组之后,不能再去改变其值了,比如下面这样就会出现报错:
假设元组中存在元素是一个可变对象,如果我们不改变元组,但改变了可变对象的值,又会得到怎样的结果呢?请看下面实例:
从上面可以看到,元组中的第 2 个元素似乎发生了变化,这岂不是和上面说的元组不可变自相矛盾了吗?
其实,我们说的元组不可变,指的是元组中各元素的指向永远保持不变。在上面操作中,元组中第 2 个元素指向的一直是列表 nums
,我们改变的其实不是元组的元素,而只是改变了 列表 nums
中的元素。
元组是不可变的,因此我们就不能删除元组中的元素,但是,我们可以通过 del
语句删除整个元组。
通过关键字 in
,可检查当前元组中是否包含指定元素,返回结果为布尔值 True
或 False
。
通过关键字 in
,还可以用于遍历当前元组。
python里面元组是什么意思?
元组其实和列表的差距并不是很大,但是也有其独立的特点:
- 元组是一系列不可变的Python对象。元组是一种序列,就像列表一样;列表通常用来存储相同类型的数据;而元组在实际开发中,通常用来存储不同类型的数据。
- 元组和列表之间的主要区别是元组不能像列表那样改变元素的值,可以简单地理解为“只读列表”。元组使用小括号
()
,而列表使用方括号[]
。 - 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
创建元组:需使用逗号分隔值放入小括号的一个序列。或者,也可以将这些逗号分隔值放在括号之间。
元组元素的访问:请使用方括号进行指定索引切片或索引,以获取该索引处的值。
更改元组:元组是不可变的,但是可以使用现有元组的一部分来创建新的元组。
删除元组元素:元组中的元素值是不允许删除的,但我们可以使用
del
语句来删除整个元组。 Python元组构建了对象的简单组合,元组与列表非常相似,但元组不能在原位置修改,通常写成包在圆括号中的一系列项,且具有列表的大多数属性。 元组是:
- 任意对象的有序集合:与字符串和列表类似,元组是一个基于位置的有序对象集合,可以嵌入任何类型的对象。
- 通过偏移量存取:同字符串、列表一样,元组中的元素也是通过偏移量来访问的,支持索引和分片。
- 属于“不可变序列”:与字符串相同,元组是不可变的,不支持适用于列表的任何原位置修改操作。
- 固定长度、多样性、任意嵌套:元组不可变,所以不能改变元组长度,元组可以包含复合对象,支持任意嵌套。
- 对象引用数组:与列表相似,元组也是对象引用的数组,存储了指向其他对象的存取点。
Python元组常用操作小技巧
所以这篇文章,我们先来回顾和总结Python数据结构里常用操作。Python中常见的数据结构可以统称为容器(container)。序列(如列表和元组)、映射(如字典)以及集合(set)是三类主要的容器。而扁平序列如str、bytes、bytearray、memoryview 和 array.array等不在这篇文章的讨论范围内。
在此,我们先从元组开始说起。
元组区别于列表的显著特征之一就是它不能被修改,但其另外一个作用就是用于没有字段名的记录。因为后者经常被忽略,我们先来看看元组作为记录的作用。
使用括号就可以定义一个元组。元组中的每个元素都存放了记录中一个字段的数据,外加这个字段的位置。正是这个位置信息给数据赋予了意义。下面的例子中,元组就被当作记录加以利用:
输出为:
上述 for
循环中的操作提取了元组中的元素,也叫作拆包(unpacking)。平行赋值是对元组拆包很好的应用,示例如下:
还有一个经典而优雅的应用是交换变量的值:
用 *
运算符把一个可迭代对象拆开作为函数的参数,例如Python的内置函数 divmod
接收两个数字类型的参数,返回商和余数。以下范例将使用 *
将元组传入函数。
输出为:
有些函数有多个返回值,将其赋给一个变量时,变量类型即是元组:
输出为:
zip
是Python的内置函数,能够接收两个或多个序列,并组成一个元组列表,在Python3中会返回一个迭代器,如下所示:
输出为:
元组当然也支持一些常规操作,如对于元组 a = (1, 'y', 5, 5, 'x')
:
上述内容不仅涵盖了元组的基本操作,同时也结合了实际工作中常搭配使用的其他函数、运算符等。在回顾这些知识时主要参考了两本经典的Python编程书籍:《流畅的Python》和《像计算机科学家一样思考Python》,有兴趣的朋友可以深入阅读!
希望这篇文章对你有帮助,下回将总结Python列表的使用技巧。
[1]《流畅的Python》:
python自学笔记13:元组和字典的操作
定义元组(tuple):
t1 = (1, 2, 3, 4) # 多个数据元组
t2 = (1,) # 如果元组内只有一个数据,也需要用逗号隔开,否则这个数据将是他本身的类型
元组的操作:
元组类型数据不支持修改,可查找。
查找:
按下标查找:
print(t1[1])
函数查找:
print(t1.index(1)) # 返回对应下标,如果数据不存在,程序将报错
print(t1.count(1)) # 统计数据在元组当中出现的次数
print(len(t1)) # 统计元组当中的数据个数
注意:当元组内嵌套列表数据,可以通过下标的方法对列表数据进行修改如:
t3 = (1, 2, ["a", "b"])
t3[2][0] = "c" # t3的值将变为 (1, 2, ["c", "b"])
定义字典(dict)
字典的特点
- 符号为
{}
。 - 数据为键(key)值(value)对形式,每个键值对之间用逗号隔开如:
dict1 = {"name": "小明", "age": 18, "gender": "男"}
字典的操作:
dict1["name"] = "小红"
dict1["id"] = 3
如果 key 存在,将修改其所对应的值。如果不存在,将在字典最后添加该键值对。
删除数据
del()
: 删除字典或删除字典内的键值对
del dict1["name"] # 删除字典内的键值对,如果删除的 key 不存在,程序将会报错
del dict1 # 删除整个字典
clear()
: 清空字典
dict1.clear()
查找数据
一. 按照 key 进行查找,最后返回相对应的值。
二. 按函数进行查找:
(1) get(key, 默认值)
:
如果查找的 key 不存在则返回所写的默认值,如果不写默认值则返回 None
。
dict1 = {"name": "小明", "age": 18, "gender": "男"}
print(dict1.get("name")) # 小明
print(dict1.get("id", 110)) # 110
(2) keys()
:
返回字典内的所有 key,可用 for
遍历。
print(dict1.keys())
# 返回 ["name", "age", "gender"]
for key in dict1.keys():
print(key)
# 逐行输出 name age gender
(3) values()
:
返回字典内的值,可用 for
遍历。
print(dict1.values())
# 返回 ["小明", 18, "男"]
for value in dict1.values():
print(value)
# 逐行输出 小明 18 男
(4) items()
:
将字典内的数据以元组的形式返回,可用 for
遍历。
print(dict1.items())
# 返回 [("name", "小明"), ("age", 18), ("gender", "男")]
for item in dict1.items():
print(item)
# 逐行输出 ("name", "小明") ("age", 18) ("gender", "男")
遍历字典键值对(拆包),可在 for
内使用两个临时变量。
dict1 = {"name": "小明", "age": 18, "gender": "男"}
for key, value in dict1.items():
print(f"{key}={value}")
# 逐行输出:
# name=小明 age=18 gender=男
学习Python元组,有哪些必须要掌握的内容
学习Python元组,有哪些必须要掌握的内容?
1. Python元组
定义
元组是Python的一种内建数据结构。关于元组:
- 元组属于序列,可以存放任意元素(任意类型对象),且有序(前后位置关系)。
- 元组支持整数索引访问其中的数据,也支持切片。
- 元组和列表不同的是,元组不可变,列表可变。 元组不可变,某些操作比列表高效。
创建元组
可以用以下两种方法创建元组:
- 使用
()
创建。 - 使用构造函数
tuple()
创建。 使用()
可以创建元组,元组元素间使用,
分隔,元组内部元素可以是任意元素,也可以是元组。 元组不可变除了不能修改,也不能删除元组元素,但删除与元组绑定的变量是没问题的。 使用()
方式创建只有一个元素的元组时要注意,因为一个元素使用()
括起来,表示元素本身,如100
,(100)
两者等价,如果创建只包含100
的元组应该使用:(100,)
方式。 使用构造函数tuple()
创建元组。了解更多信息可以使用help(tuple)
来查看具体帮助内容。 tuple()
如果没有参数创建一个空元组。tuple(可迭代对象)
由可迭代对象创建一个元组,如字符串,列表。如果参数是元组将返回该元组。
2. 元组的访问
和字符串、列表一样,元组支持使用整数索引(下标方式访问),也支持切片方式访问元组的元素。
下标索引如果是正整数则从0开始表示第一个元素,最后一个元素用元组长度-1表示;如果使用负整数做下标,-1
表示最后一个元素,-2
表示倒数第二个元素,……负的长度表示第一个元素。
⚠️ 需要注意的是下标索引不能越界!
1. 使用索引访问:
2. 切片访问:
语法为:元组[start:end:step]
3. 使用内建的常用函数操作元组
常用内建函数 len
、max
、min
、sum
、reversed
可以操作元组,函数解释如下:
操作示例如下:
注意事项:
使用 min
、max
、sum
函数操作元组,元组元素类型能被函数接受才可以,否则将报异常等错误。
4. 元组常用方法
主要有 count
和 index
方法:
count
返回元组中对应值的个数。index
返回对应值的位置(索引)。
5. 元组运算
元组支持 +
连接,*
复制运算,in
/ not in
运算。
6. 序列
字符串、元组、列表都属于Python的序列结构,序列具有很多相同的属性和操作方法,如:序列中的每个元素被分配一个序号(位置,也叫索引),序号(索引)从0开始,依次类推;序列都支持切片操作等等。 Python内置了多种序列结构:字符串、列表、元组、Unicode字符串、buffer对象、range对象。序列是Python中一种重要的数据结构,必须要掌握,也很容易掌握。