掌握五个元组的用法,让python代码飞得更快
off999 2024-11-27 18:42 108 浏览 0 评论
作者:小K
来源:麦叔编程
说起Python的基本数据类型,第一时间想到肯定是int、str、list、dict...
因为这几种数据类型被使用的频率相对比较高,所以对他们的印象会更深刻点。
但是在Python的基本数据类型里有有一个神奇的类型,他的功能(方法)和列表重叠,而且列表的功能(方法)要比他多得多。
一般人在使用Array的时候,基本上都会选择列表(List)而不会去选择他。
「他就是今天的主角--元组(Tuple)」
List VS Tuple
共同点
List和Tuple都是Python的内置类型,都可以保存数据集合,都可以保存复合数据,都可以用index方法对其进行索引。
List
为什么列表(List)会被经常使用?
就是因为列表的对象方法多,能增、能减、能查、能数、能切、能排、甚至能用+号对其进行相加...
使用dir(list)也可看到他自带的方法:
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
Tuple
相比List,Tuple能使用的方法就少得可怜,只有区区四个。
使用dir(tuple)查看元组类型的内置方法:
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
从上方dir(tuple)打印出的列表中我们发现,他内置函数只能实现查(index)和数(count)的功能。
「既然列表包含所有的元组的功能,那元组还有什么必要存在?」
元组之所以区别于列表的最大原因是:「列表是可变对象而元组是不可变对象。」
简单来说,列表是可读可写的文档,那么元组就是一个只读的文档。
代码示例:
>>> lst = ['maishu','jason']
>>> print(id(lst))
4498791232
>>> lst[1] = "kevin"
>>> print(id(lst))
4498791232
?
对列表进行修改之后,他在内存中的地址并不会被改变。
?
>>> tup = ("maishu","jason")
>>> print(id(tup))
4498746176
>>> tup[1] = "kevin"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
报错了。
那我直接把元组tup定义成("maishu","kevin")呢?
>>> tup = ("maishu","kevin")
>>> print(id(tup))
4498746240
我们发现tup的id已经发生改变了,事实就是每一次创建元组对象,都会分配到新的内存地址。
在相同元素组成下,列表会更占内存空间:
>>> import sys
>>> sys.getsizeof(lst)
72
>>> sys.getsizeof(tup)
56
Tuple的使用场景
- 如果写代码时,只需要一个Array当做常量的话,更推荐使用元组;
- 创建一个拥有相同元素的Array,元组会比列表快十几倍;
- 如果你需要一个Array不被任何人修改,那么也推荐使用元组;
- 不可变类型--元组可以当做字典的键,可变类型--列表不可以;
>>> a1 = ["a"]
>>> a2 = ("a",)
>>> {a1:"value"}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> {a2:"value"}
{('a',): 'value'}
>>>
相关推荐
-
- 安全浏览器免费下载(安全刘览器下载)
-
1、打开运行qq浏览器。 2、点击右上方菜单按钮,在弹出的菜单中点击“qq浏览器设置”。? 3、进入“安全与隐私”类目,然后勾选“开启安全网址认证”确定即可。?1.首先打开浏览器,点击左上角的三个点。2.然后在弹出的页面点击“设置”选项...
-
2026-01-08 04:03 off999
- bios无法设置u盘启动(bios无法设置legacy)
-
需要准备的工具:电脑,Bios设置界面。1、以戴尔电脑为例,直接按启动快捷键F12进入启动菜单选择u盘即可,进入BIOS设置。2、进入BIOS设置之后。找到”USBStorageLegacySuppo...
- 电脑重装win7系统后怎么设置
-
1.首先在win7桌面空白处,点击右键弹出菜单,选择个性化。2.调出个性化设置窗口后,我们切换至开始选项卡,然后点击右侧下方的“选择哪些文件夹显示在开始屏幕上”。3.此时一般正常情况下,可以看到设置选...
- 简单常用的dos命令(常见dos命令总结)
-
一些常用的DOS命令包括:1.dir:列出当前目录中的文件和子目录。2.cd:更改当前目录。3.md:创建一个新的目录。4.rd:删除一个目录。5.copy:将文件从一个位置复制到另一个位置...
- 421事件全文免费阅读(421事件文档全文免费阅读)
-
对于421事件的真实性,目前没有确凿的官方消息。关于421事件的真实性,有以下几种观点:1.有人认为421事件总体上是真实的,认为其中的污秽和混乱超过了大多数人的认知,涉及到的封建迷信内容对于一些人...
- 英伟达所有显卡型号(英伟达显卡型号含义)
-
amdcpu搭配英伟达的显卡,显卡性能不会受到影响的。性能不会受到影响,AMD说配三A平台稳定性最强,而且恢复自动超频一点点,制其实那只是AMD的广告而已,没那回事,AMDCPU配英伟达的显卡也没...
- windows无法连接到这个网络(windows无法连接到这个网络 笔记本)
-
有可能是因为无线网络的密码变了,也有可能是系统自身的问题,解决方法:1、右键计算机图标。2、点开服务和应用程序,然后点击下面的服务。3、打开服务后找到WLANAutoConfig无线网络服务。4、W...
- 电脑装机平台(电脑装机城)
-
网上装机京东比较靠谱。要想在网上组装一台靠谱的电脑,真的需要一双慧眼。笔者认为相对靠谱的还是某东自营店,某宝甚至某猫都是满地坑。如果某东也看不上的话,其实到线下实体店购买也是不错的选择,现在线上线下价...
- u盘突然识别不了怎么解决(u盘总是识别不出来)
-
当出现U盘无法读取的情况时,需要分情况解决。情景一:由于驱动问题导致无法读取U盘1、插上U盘,右击我的电脑--管理--设备管理器,展开通用串行总线控制器。找到USBMassStorageDevi...
- 台式电脑重装系统视频(戴尔台式电脑重装系统重启后无法进入引导)
-
电脑在重装系统后看视频卡,原因如下: 1、没安装好显卡驱动。这个可能性极大。 2、没安装好播放器。 3、没安装好硬盘驱动,导致硬盘的速度极低,无法正常提供视频码率。如果没有分区,只是在C盘...
- 正版win7系统镜像下载官网(win7之家 官方镜像)
-
1、去微软官方网站下载。2、去系统之家下载,我自己的win10就是从哪里下载安装的,你可以试试哈。ghost镜像的使用一、备份主分区--C盘:假设你的操作系统安装在主分区--C盘,当系统重装不久,或...
- win7文件类型怎么更改(win7文件类型怎么更改不了)
-
重建文件关联,右击word文件,选择打开方式,选择word后同时选中下方的“始终用此程序打开”,如果不行的话可能就是文件关联的图标失效了,也就是文件关联是正常的,但是找不到图标,win7的话可以用wi...
- 下载设置功能到手机桌面(设置下载安装到手机桌面)
-
华为手机怎么安装下载内容?1.打开华为应用市场后点击上方的“管理”。2.再点击进入“安装管理”。3.在下载好但没有桌面图标的APP那里点击“∨”处,再点“管理”就能查看到此应用的应用信息。4.选择其...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
