青春须早为,岂能长少年。这篇文章主要讲述#yyds干货盘点# 6. Python 元组,不可变的列表,滚雪球学 Python相关的知识,希望能为你提供帮助。
六、python 元组,不可变的列表今天新学习的概念叫做元组,其实学元组还是离不开列表,第一个知识点是元组的英文 tuple
要牢牢记住,第一个知识点是元组与列表的区别,列表的元素可以修改,元组的元素不可以修改,所以元素又可以称为不可变的列表,好了元组学习完毕了。
6.1 元组的定义列表用中括号 []
进行定义,元组用小括号 ()
进行定义,元组的语法格式如下:
# my_tuple 是元组变量名,可以任意命名
my_tuple = (元素1,元素2,元素3...)
元组中的每一个数据也称为元素,元素也可以是数字、字符串或者列表等内容,输出使用 print 函数即可。
特别注意如果元组内的元素只有一个,需要在定义的时候在元素的右侧增加一个英文逗号
,
,例如:# 只有一个元素
my_tuple = (元素1,)
下面就在 PyCharm 中进行一下实际的编码吧。
# 声明一个元组对象
my_tuple = (1, 2, 3)
print(my_tuple)
print(type(my_tuple))# 声明一个元组对象
my_tuple1 = ("www", "aaa", "ggg")
print(my_tuple1)
print(type(my_tuple1))# 声明只有一个元素的元组对象
my_tuple2 = ("www", )
print(my_tuple2)
print(type(my_tuple2))
6.2 读取元组中的元素有列表在前,该部分学期起来就比较简单了,在元组中获取元素也是通过中括号
[]
加上索引的方式,与列表保持一致。列表也可以通过循环去输出,可以自行通过 for 循环进行尝试。
列表中的元素可以通过索引去修改,但是元组不可以,以下代码会出现错误。
# 声明一个元组对象
my_tuple = ("www", "aaa", "ggg")
my_tuple[1] = "good"
print(my_tuple)
该错误提示如下:
TypeError: tuple object does not support item assignment
原因为本篇博客开始提及的元组不允许修改元素,上述错误翻译之后表示 tuple 对象不支持赋值。
6.3 元组的其他知识补充由于元组与列表太相似了,接下来的一些知识点只做简单罗列。
- 切片适用于元组
- 列表方法中不涉及修改列表元素的方法都可用于元组,例如
len
,count
...,如果列表方法会对元素进行修改,那不可用于元组,例如append
,insert
... 如果想详细查阅,回忆dir
方法。 - 部分列表可用的内置函数同样适用于元组,例如
max
、min
...
list
与 tuple
。将元组修改为列表。
my_tuple = ("www", "aaa", "ggg")
my_list = list(my_tuple)
print(my_list)
将列表修改为元组。
my_list = ["www", "aaa", "ggg"]
my_tuple = tuple(my_list)
print(my_tuple)
6.5 内置函数 zip函数 zip 可以将一个可迭代对象,如列表打包成元组,打包之后返回的是一个 zip 对象,说起来有点绕,而且应用的场景不是很明确,可以先看代码学习一下。
en_names = ["apple", "orange", "pear"]
cn_names = ["苹果", "橘子", "梨"]zipData = https://www.songbingjia.com/android/zip(en_names, cn_names)print(zipData)# 打印 zipData
print(type(zipData))# 打印 zipData 数据类型
print(list(zipData))# 输出 zipData 中的数据内容
输出结果:
<
zip object at 0x0000024C1E4FF648>
<
class zip>
[(apple, 苹果), (orange, 橘子), (pear, 梨)]
通过代码你可以看到,zip 把两个列表的数据合并了,每个列表中对应索引位置的元素合并在了一个元组里面。上述代码中就出现了
apple
与 苹果
对应,orange
与 橘子
对应,pear
与 梨
对应。如果放在 zip 函数的列表参数长度不相同,那 zip 会选择元素最少的那个列表作为依据,形成对应关系。
en_names = ["apple", "orange"]
cn_names = ["苹果", "橘子", "梨"]zipData = https://www.songbingjia.com/android/zip(en_names, cn_names)print(zipData)# 打印 zipData
print(type(zipData))# 打印 zipData 数据类型
print(list(zipData))# 输出 zipData 中的数据内容
该代码第一个列表有 2 个元素,第二个列表有 3 个元素,最终输出的结果为:
<
zip object at 0x0000026DE2F7F608>
<
class zip>
[(apple, 苹果), (orange, 橘子)]
代码如下:
en_names = ["apple", "orange"]
cn_names = ["苹果", "橘子", "梨"]zipData = https://www.songbingjia.com/android/zip(en_names, cn_names)print(zipData)# 打印 zipDataunzipData = zip(*zipData)
print(unzipData)# 打印 unzipDataprint(list(unzipData))# 打印 unzipData 内容
6.6 元组的功能与应用场景元组既然与列表这么相似,那为何 Python 还要专门设计一个元组数据类型来呢?
相比于列表,元组有如下优点。
- 因为其不可修改,可以保护数据;
- 元组在底层数据结构上比列表简单,占用的资源少,程序执行速度快;(说了也不用记住的知识)
- 元组很多时候回用作函数的返回值。(后续知识)
最后一碗毒鸡汤
只要坚持下去,总会有失败的一天。 O(∩_∩)O 哈哈~
【#yyds干货盘点# 6. Python 元组,不可变的列表,滚雪球学 Python】
推荐阅读
- #yyds干货盘点# RPCRESTGraphQL接口类型概述
- 用户增长分析模型,该如何搭建
- #yyds干货盘点#数据分析从零开始实战,Pandas读写CSV数据
- 在WordPress中使用ACF的动态字段数( AKA让用户设置他需要多少个字段)
- 动态更改WordPress主题
- 不要在WordPress主题中加载”edits.css”
- DIVI导航栏详细信息
- WordPress是否具有与get_post_meta()相对应的特定页面()
- Dockerfile-容器路径上的touch文件