如果有了解过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

python中的列表和元组_python中列表和元组的区别相关推荐

  1. Python基础_第3章_Python中的循环结构

    Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...

  2. Python基础_第5章_Python中的数据序列

    Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...

  3. python二维元组_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)

    如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  4. python列表方法语句_Python中列表和元组的相关语句和方法讲解

    列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...

  5. python第2位的值_Python组通过匹配元组列表中的第二个元组值

    在本教程中,我们将编写一个程序,该程序将列表中具有与第二个元素相同的元素的所有元组分组.让我们看一个例子来清楚地理解它. 输入值[('Python', 'nhooos'), ('Management' ...

  6. python的内建数据结构包括_Python中3种内建数据结构:列表、元组和字典

    Python中有3种内建的数据结构:列表.元组和字典.参考简明Python教程 1. 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目.假想你有一个购物列表,上面 ...

  7. python中字典列表元组_Python中的列表和元组

    python中字典列表元组 Lists and tuples are arguably Python's most versatile, useful data types. You will fin ...

  8. python只能对列表进行切片_Python中的列表

    1. 列表的创建 列表(list)是Python中一个非常重要的类型,用于管理一组数据,列表的形式如下所示 country = ['China', 'Germany', 'Russia', 'Amer ...

  9. python查找列表重复项_python – 在列表中查找项目和重复项

    我正在使用 Python并考虑以下问题:给出一个列表,例如[1,0,-2,0,0,4,5,0,3]多次包含0的整数,我希望有这些0和每一个的索引是它出现在列表中的次数,直到出现不同的元素或列表结束. ...

最新文章

  1. sap abap中动态指定查询条件
  2. director.js实现前端路由
  3. Hibernate的Session会话中get()和load()方法的区别
  4. html刮刮卡开始刮奖页面,html5刮刮卡抽奖 示例源码
  5. 平台用户实名认证设计流程
  6. python itertools模块_Python标准库:itertools模块
  7. Codevs 1205 单词反转(Vector以及如何输出string)
  8. python交互式shell之jupyter notebook初步安装使用
  9. java实现url转码、解码
  10. 第十二届蓝桥杯模拟赛Python组(第一期)
  11. 2021年下半年系统集成项目管理工程师下午真题及答案解析
  12. 补码一位乘法(Booth算法)和补码二位乘法详解
  13. Mac上使用IE浏览器
  14. signal信号的基础知识
  15. 2020国家网络安全宣传周,这些事和你有关
  16. golang中os/signal包的使用
  17. process has died
  18. java怎么处理黑白bmp_Android JNI处理图片实现黑白滤镜的方法
  19. Qt 串口数据采集并绘图
  20. 南京2级计算机成绩查询,南京审计大学教务管理系统登录入口、成绩查询网上选课查分...

热门文章

  1. 16-Flutter移动电商实战-切换后页面状态的保持AutomaticKeepAliveClientMixin
  2. Java反射机制概念及应用场景
  3. mpvue 从零开始 女友的发带 2 window中设置
  4. TextArea换行 滚动条
  5. 计算机组成原理中ID是什么,计算机组成原理.doc
  6. 反转链表--清晰易懂的两种方法
  7. 数据结构实验四 排序算法的实现
  8. jqgrid多选和禁止某行记录选择
  9. java 注入 循环_spring依赖注入——循环依赖
  10. mysql数据库的变量有哪些_[数据库]MySQL变量