python中的列表和元组_python中列表和元组的区别

如果有了解过python中的列表和元组,你可能会知道相对于列表,元组是不可变的,也就是说元组中的数据不能随意更改。除了列表是用中括号表示而元组是用小括号表示之外,这两种数据类型好像并没有什么不同,都是用来存放一系列的数据,事实真是如此吗?

a = [1, 3, 5, 7, 'a']

b = (1, 3, 5, 7, 'b')

# 现在改变b中的值

b[2] = 4

TypeError Traceback (most recent call last)

in ()

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,它用来快速的生成一个类,可以看成是类的轻量级替代方法,也很符合我们上面说的元组的功能。

本文标题: python中列表和元组的区别

本文地址: http://www.cppcns.com/jiaoben/python/214865.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sublime2使用和配置

官方下载地址:http://www.sublimetext.com/2,可下载zip免安装版 显示左侧目录树 无需安装插件,菜单>“文件”》“打开目录”,会自动显示 代码注释 无需安装插件:Ctrl/:注释整行,可来回切换,Submlie Text可自动判断…

mysql ab复制延时_Mysql的AB复制

Mysql的AB复制环境:rhel 6.5master:192.168.2.1slave1:192.168.2.2slave2:192.168.2.101.mysql的单向复制注: mysql数据库的版本,两个数据库版本要相同,或者slave比master版本高!yum install mysql-server -y请注意当你进行复制时,所有对复制中的表的更…

python ckeditor上传图片400错误_又一款python开发神器

优秀的python开发工具有很多,比如pycharm,spder,ipython,jupyter以及很多编辑器的插件等。但是如果利用python来做数据分析的话,要是有一款类似Rstudio的工具就好了,Rstudio是非常人性化的工具。之前有一个…

mysql.data.dll win10_【MySQL】Windows10下安装

2.配置环境变量变量名:MYSQL_HOME变量值:download_path\mysql-8.0.19-winx64path添加:%MYSQL_HOME%\bin;3.生成data文件管理员身份,进入download_path\mysql-8.0.19-winx64\bin命令:mysqld --initialize-insecure --us…

Chrome 调试动态加载的js

今天有个同事问到我用chrome调试动态加载js的问题,这个问题之前遇到过,只是时间有点长了,有些忘记。在这里做一下记录: 在要调试的源码的后面加上 // sourceURL debug.js 注释。 这样子,当浏览器检测到这个标记的时候…

mysql数据库邮箱什么类型_MySQL的数据类型介绍

MySQL的数据类型介绍 发布时间:2020-06-01 20:57:09 来源:亿速云 阅读:154 作者:鸽子 由于Mysql独有的特性和实现细节对性能的影响是很明显的,因为做好Mysql数据库的设计很关键。对于数据库设计,我们不得不提表字段的类型选择,由于Mysql支持的数据类型非常多,因此如何选…

rabbitmq 延迟队列_Delayed Message 插件实现 RabbitMQ 延迟队列

延迟队列是为了存放那些延迟执行的消息,待消息过期之后消费端从队列里拿出来执行。DLX TTL 方式存在的时序问题对于延迟队列不管是 AMQP 协议或者 RabbitMQ 本身是不支持的,之前有介绍过如何使用 RabbitMQ 死信队列(DLX) TTL 的方式来模拟实现延迟队列…

JS - 按钮倒计时

效果&#xff1a; html代码&#xff1a; <input type"button" id"btn" value"点击获取效验码" />js代码&#xff1a; //倒计时var wait60;function time(o) {if (wait 0) {o.removeAttribute("disabled"); o.value&qu…

python安装报错类型_Python处理验证码第一篇(pytesser初探及报错处理)

前言&#xff1a;春节期间&#xff0c;无法全身心投入地去写爬虫&#xff0c;那就玩玩验证码吧&#xff0c;应该比较有趣&#xff01;首次接触验证码识别&#xff0c;用pytesser接触一下最简单的验证码先&#xff0c;代码参照&#xff1a;使用python以及工具包进行简单的验证码…

debian添加删除用户

debian添加删除用户增加普通用户命令&#xff1a;#adduser abc#passwd abc#exit用abc登录/etc/passwd中保存了用户信息LINUX创建用户的命令useradd -g test -d /home/test1 -s /etc/bash -m test1注解&#xff1a;-g 所属组 -d 家目录 -s 所用的SHELL删除用户命令userdel -r te…

bin文件怎么转换成文本文档_怎么把pdf文件转换成word文档?这样转很简单

在日常的学习、工作生活中&#xff0c;小伙伴们总少不了要对文件格式进行转换操作&#xff0c;例如把pdf文件转换成word文档。对于职场老手来说&#xff0c;这当然不算一个难度操作&#xff0c;甚至还很简单。但对于职场新人而言&#xff0c;找不对方法&#xff0c;可能操作起来…

python私有属性怎么定义_Python中定义私有属性的方法是()。

【判断题】请假条带有请求的性质,所以一般来说篇幅要尽量长一些,以示郑重;更多要用煽情性语句,以打动对方。( )【单选题】关于类和对象的关系,下列描述正确的是()。【选择】Трудоспособный возраст в России у женщин считается _…

GIT撤销相关命令

刚开始正式使用git不久&#xff0c;很多使用方法不是很了解&#xff0c;提交文件什么的总是提心吊胆的&#xff0c;生怕项目代码给自己弄乱&#xff0c;一开始为了保险还傻傻的copy一份放起来再做git提交。 今天学习了git撤销的一些命令。发现git作为一个版本控制系统&#xff…

delphi if多个条件_Python从入门到精通——一文读懂if语句用法

1、if语句概述if语句能够进行条件测试&#xff0c;并依据一定的条件进行具体的操作2、if语句条件测试if语句的核心是一个值为True或False的表达式&#xff0c;这种表达式称为条件测试。Python根据条件测试的值为True或False来决定是否执行if语句中的代码。2.1 条件测试是否相等…

mysql 实时性能_Mysql 实时查看性能

今天陪DBA 加班 又学会个新玩具mysqladmin -P3306 -uasd -pasdasd -hmysql.com -r -i 1 ext |\awk -F"|" \"BEGIN{ count0; }"\{ if($2 ~ /Variable_name/ && ((count)%20 1)){\print "----------|---------|--- MySQL Command Status --|--…

计算机网络——零碎知识点

1. T1载波&#xff1a;是专用电话连接、时分多路数字传输设施&#xff0c;其支持的数据传输速度为 1.544M 比特/秒。T1 线路实际上是由24个单独的通道组成的&#xff0c;每个通道支持 56K 比特/秒的传输速度。大多数的电话公司只允许用户购买这些被称为部分 T1 接入的单独通道的…

jquery交换数组元素位置_跟我一起学jQuery——第一集

《锋利的JQuery》第二版阅读笔记-第一章jQuery对象和DOM对象想学习jQuery&#xff0c;首先要学会区分jQuery对象和DOM对象。1)jQuery对象是用jQuery类库的选择器获得的对象。2)DOM对象是用传统(javascript)获得的对象。举个栗子//DOM对象var domO document.getElementById(&qu…

maya怎么贴膜_maya怎么渲染成白膜?

回答&#xff1a;打开render setting里设置你的动画格式avi或tga等等avi是视频 tga一般为单帧的图像序列然后设置从第几帧开始渲染 start frame 和渲染到第几帧结束 end frame;然后再选择你需要渲染的摄影机如果你有自己创建的摄影机的话&#xff01;否则则使用默认的透视图摄影…

Gitlab的develop角色的人没有权限无法提交的问题解决方案

问题 事情是这样的&#xff0c;最近跟几位同事搞一些东西&#xff0c;打算在Gitlab上建一个仓库&#xff0c;然后协同开发。 我建好仓库&#xff0c;将其他几位同事添加进来&#xff0c;角色分配为Develop。 之后提交初始代码到master分支后&#xff0c;他们用sourceTree拉取代…

macbook不能进系统 备份数据_不基于备份和表,生产系统数据误删就能完全恢复?!...

作者介绍刘宝珍&#xff0c;架构师&#xff0c;目前就职于大型资产管理公司的科技子公司&#xff0c;拥有多年的大型私有云的规划和设计工作经验&#xff0c;熟悉软件的开发流程&#xff0c;目前醉心于研究基于DDD和敏捷的软件的开发模式&#xff0c;对分布式架构有深入的理解&…