python中列表和元组的区别
作者:laozhang 时间:2022-05-21 16:06:00
如果有了解过python中的列表和元组,你可能会知道相对于列表,元组是不可变的,也就是说元组中的数据不能随意更改。除了列表是用中括号表示而元组是用小括号表示之外,这两种数据类型好像并没有什么不同,都是用来存放一系列的数据,事实真是如此吗?
a = [1, 3, 5, 7, 'a']
b = (1, 3, 5, 7, 'b')
# 现在改变b中的值
b[2] = 4
TypeError Traceback (most recent call last)
<ipython-input-2-96f3d2fefb53> in <module>()
4
5 # 现在改变b中数据的值
----> 6 b[2] = 4
TypeError: 'tuple' object does not support item assignment
看起来除了元组不可变之外,列表完全可以取代元组,为什么要多此一举创造出元组这种类型?其实这背后有更深层的含义,列表是用来表示一组相同类型(相同价值)的数据,而元组用来存放不同类型(不同价值)的数据,简单来说,列表是同质的,而元组是异构的。
比如说,现在有一本书,书里面有一些批注。我们用元组来表示书中第几页第几行的内容,像这样:position = (page, line),然后把它放到字典里作为批注的键,表示第几页第几行有批注。同时,我们用列表来表示这些位置,如果有新的位置,可以加入列表。这符合列表可以更改数据的特点。但是如果更改元组里面的数据就没有意义了,因为这些坐标本来就是存在的。
在python的模块中,我们可以找到很多例子:
range(10)
range(0, 10)
比如range方法用来生成一列有序地数据,这些数据是等价的,并没有不同的功能,所以用列表来表示最合适。而像下面的例子:
from datetime import datetime
datetime.now()
datetime.datetime(2017, 12, 17, 20, 23, 13, 578752)
当前时间适合用元组来表式,因为元组中每个数据有不同的功能,或者说有不同的价值,像第一个数据表示年份。
说到这,想起了我们之前说过的具名元组nametuple,它用来快速的生成一个类,可以看成是类的轻量级替代方法,也很符合我们上面说的元组的功能。
来源:https://segmentfault.com/a/1190000012463067
标签:python,列表,元组
0
投稿
猜你喜欢
MySql节点管理安装步骤
2010-10-14 14:13:00
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2024-05-09 15:15:10
浅谈Django中的数据库模型类-models.py(一对一的关系)
2024-01-24 18:32:11
numpy中三维数组中加入元素后的位置详解
2021-02-28 10:25:14
python去除所有html标签的方法
2021-02-23 20:49:00
Python实现邮件发送功能的示例详解
2022-08-18 13:15:43
可用性研究:为文字链接扩大可点击区域
2008-09-18 18:23:00
Go开发Gin项目添加jwt功能实例详解
2024-04-26 17:31:00
SQL2000个人版 应用程序正常初始化失败0乘以C0000135失败
2024-01-27 05:09:39
python实现在IDLE中输入多行的方法
2023-05-06 19:24:01
python中wx将图标显示在右下角的脚本代码
2022-10-27 02:26:53
selenium+opencv实现滑块验证码的登陆
2022-03-28 06:49:04
IE6与IE7的unshift 方法
2010-01-19 13:59:00
PHP基于phpqrcode类库生成二维码过程解析
2023-11-17 19:06:35
python正则表达式实现自动化编程
2022-01-08 12:24:33
sql分类汇总及Select的自增长脚本
2024-01-22 20:43:34
搭建vue开发环境
2024-04-09 10:58:27
Oracle 数据库连接查询SQL语句
2009-08-05 20:56:00
Python实现PDF转换文本详解
2022-09-04 13:40:52
Innodb中mysql快速删除2T的大表方法示例
2024-01-22 09:14:21