推荐图书:

《Python程序设计(第3版)》,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年1月第6次印刷,山东省一流本科课程“Python应用开发”配套教材,清华大学出版社2020年度畅销图书(本书第二版为2019、2020年度畅销图书)

京东购买链接:https://item.jd.com/12668739.html

天猫、当当均有销售,可以选择自己常用平台搜索“董付国 第3版”找到本书。

配套资源:教学大纲、电子教案、微课视频、PPT课件、例题源码、习题答案、考试系统。

适用专业:计算机、网络工程、软件工程以及相关专业。

适用学时:>=64

页数:381

定价:59.8

微课视频:77个

教学大纲:《Python程序设计(第3版)》配套教学大纲

习题答案:《Python程序设计(第3版)》课后习题答案

在Python语言中,元组是不可变的(或者说可哈希),列表是可变的(或者说不可哈希),很多资料上有“元组的效率比列表高,能使用元组的地方不要使用列表”这样的说法,这个说法对于Python 2.x低版本是成立的,那么是否适用于Python 3.x呢?很多人延续了Python 2.x对元组和列表的描述和认识,是否还准确呢?

下面的代码运行版本为Python 3.8.9,运行环境为IDLE。

1)元组占用的内存空间略小

元组创建之后不允许改变元素的数量和引用,而列表在增加元素和删除元素时,会动态扩展和缩小所占内存空间,这确实会带来额外的开销。

2)元组对象的引用次数减少为0时,对应的内存空间不会立即释放,而是会进行缓存,元组被删除之后对应的内存空间会被保留一段时间,再次创建同样大小的元组时会尽量使用已缓存的内存空间,这可以在一定程序上避免反复申请和释放内存带来的时间开销。

3)元组是不可变的,可以作为集合的元素和字典的“键”,不支持列表对象所具有的append()、clear()、extend()、insert()、pop()、remove()、reverse()、sort()等对自身进行修改的方法,也不支持关键字del删除元组中的元素。任何试图修改元素个数或元素引用的操作都会引发异常,作为参数传递给第三方开发的函数时元组更加安全,不会在被调函数中有意或无意地修改导致主调函数中的实参被修改。

4)速度问题。很多资料上都会说元组比列表快,因为元组的内部实现更简单一些,那么实际情况是怎样的呢?

在进行解包操作时,元组比列表略快,但是有限到几乎可以忽略。

再来看一下使用for循环遍历元组和列表时的速度,元组略快,但也没有明显的优势。

最后附上32位Python 2.7.11环境中元组与列表性能比较的结果,元组除占用内存空间略小之外,其他操作也并没有表现出很大的优势。

温馨提示:

关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(累计印刷超过120次)的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1000篇原创技术文章;发送消息“会议”或“培训”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过500节Python微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题神器”,免费练习1363道客观题和260道编程题,题库持续更新;发送消息“编程比赛”了解Python小屋编程大赛详情。

Python中真的是能使用元组的地方尽量不使用列表吗?相关推荐

  1. python中如何调用或修改元组中的元素_python 元组的使用方法

    元组--tuple 列表非常适合用于存储在程序运行期间可能变化的数据集. 列表是可以修改的,但元组是不可修改的 Python将不能修改的值称为不可变的,而不可变的列表被称为元组 1. 元组的创建和删除 ...

  2. python中集合的元素可以是任意数据类型_Python数据类型之列表

    列表 列表是由一系列按特定循序排列的元素组成(即有序集合).使用中括号[]来表示,并用逗号来分隔其中的元素. 列表的元素可以是任意类型. list 列表(序列)中的每个元素都分配一个数字索引,从 0 ...

  3. python生成多个随机数列表_在python中生成1到6之间的6个随机数的列表

    使用 list comprehension: import random def startTheGame(): mylist=[random.randint(1, 6) for _ in range ...

  4. python中排序英文单词怎么写_Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)...

    本文主要介绍排序最长的单词链的方法,列表中每个元素相当于一个单词,要实现列表中前一个单词末字母是下一个单词的首字母,并且这个链是最长的. 使用递归实现 words = ['giraffe', 'ele ...

  5. Python学习记录(4)元组:戴了紧箍咒的列表

    一.元组的创建 元组不能修改元素 二.元组的特性 三.常用方法 四.命名元组 五.拓展:is和== 六.拓展:浅拷贝和深拷贝

  6. python 元组遍历_Python中的for循环:元组、列表、字典的遍历和相互转化

    Python for循环可以遍历任何序列的项目,如列表.字符串.元组.字典.集合等序列类型. 语法: for循环的语法格式如下: for iterating_var in sequence:state ...

  7. python中列表是什么样的数据结构_Python中列表、字典、元组、集合数据结构整理...

    Python常见数据结构整理 Python中常见的数据结构可以统称为容器(container).序列(如列表和元组).映射(如字典)以及集合(set)是三类主要的容器. 一.序列(列表.元组和字符串) ...

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

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

  9. Python中列表和元组的区别与联系

    首先就看看什么是列表?什么是元组? 列表和元组,都是一个可以放置任意数据类型的有序集合.在绝大多数编程语言中,集合的数据类型必须一致.不过,对于 Python 的列表和元组来说,并无此要求. 列表: ...

最新文章

  1. 服务器忘记linux系统密码,linux系统服务器忘记密码怎么办
  2. 【NLP】如何系统性的学习NLP,有三AI-NLP知识星球等你来
  3. 查看linux端口对应的进程id
  4. python菜鸟教程100例-Python 练习实例14
  5. 视频主观质量评价工具:MSU Perceptual Video Quality tool
  6. 火狐浏览器将网页保存为pdf
  7. 关于“无法加载文件或程序集Interop.ShockwaveFlashObjects,Version = 1.0.0.0,Culture = neutral”的问题
  8. mysql常用的开发软件下载_强烈推荐!14款经典的MySQL客户端软件
  9. GDC演讲翻译——看门狗2的载具同步
  10. 九宫格摆法_九宫格照片墙摆法,9张照片墙6竖3横怎么摆?
  11. python to csv参数_pandas的to_csv()使用方法
  12. 采集百度搜寻结果,图片不显示的解决方法
  13. 强网杯-强网先锋辅助
  14. 7-2 愿天下有情人都是失散多年的兄妹 (25 分)
  15. 《深入理解大数据:大数据处理与编程实践》一一1.2 大数据处理技术简介
  16. 3G无线上网卡种类介绍
  17. JsonProperty.Access.READ_ONLY 导致查询字段为null
  18. 新手级别的小程序【看完这个博客,小程序就入门了】
  19. 错误使用 vl_compilenn>nvcc_compile (line 615)
  20. Android R(11)文件读写适配

热门文章

  1. php抛出和捕获异常,关于php:捕获和重新抛出异常的最佳实践是什么?
  2. 倒计时 分秒 小程序 方法_小程序天/小时/分秒倒计时封装
  3. mysql 语法树_Inception 语法树打印(15)
  4. 鸿蒙系统和汽车,华为鸿蒙系统和新日电动车,到底是什么关系?
  5. linux 启动端口失败,linux – 应用程序’appname’在开放移动节点应用程序启动失败(端口8080不可用)...
  6. 域服务器如何修改域名,新网域名如何修改DNS设置方法
  7. fedora中linux改成英文,Fedora的英文界面下使用中文
  8. android fragment学习4-底部布局扩展TabLayout
  9. coreldraw做生化标志_做一次体检,会“吃”进多少辐射?
  10. linux wkhtmltopdf换字体,ubuntu – 更新后Wkhtmltopdf字体大小增加