[Python核心技术与实战学习] 02 列表和元组
发布日期:2021-06-29 17:11:30 浏览次数:2 分类:技术文章

本文共 1191 字,大约阅读时间需要 3 分钟。

 

列表和元组基础

列表和元组, 都是一·个可以放置任意数据类型的有序集合。

在绝大多数编程语言中, 集合的数据类型必须一致。 不过, 对于 Python 的列表和元组来说, 并无此要求:

list1 = ['Google', 'Runoob', 1997, 2000];tup1 = ('Google', 'Runoob', 1997, 2000);

列表和元组区别:

  • 列表是动态的, 长度大小不固定, 可以随意地增加、 删减或者改变元素(mutable) 。列表的存储空间略大于元组, 性能略逊于元组。
  • 元组是静态的, 长度大小固定,无法增加删减或者改变(immutable) 。元组相对于列表更加轻量级, 性能稍优。

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,

#!/usr/bin/python3 tup1 = (12, 34.56);tup2 = ('abc', 'xyz') # 以下修改元组元素操作是非法的。# tup1[0] = 100 # 创建一个新的元组tup3 = tup1 + tup2;print (tup3)

对已有的元组做任何"改变",只能重新开辟⼀块内存, 创建新的元组了。

下面的例子, 我们想增加一个元素 5 给元组, 实际上就是创建了一个新的元组, 然后把原来两个元组的值依次填充进去。
列表来说,只需简单地在列表末尾, 加⼊对应元素就可以了。

tup = (1, 2, 3, 4)new_tup = tup + (5, ) # 创建新的元组 new_tup,并依次填充原元组的值new _tup(1, 2, 3, 4, 5)l = [1, 2, 3, 4]l.append(5) # 添加元素 5 到原列表的末尾l[1, 2, 3, 4, 5]

列表和元组相同处:

  • 列表和元组都支持负数索引, -1 表示最后一个元素, -2 表示倒数第二个元素, 以此类推
  • 列表和元组都支持切片操作
  • 列表和元组都可以随意嵌套
  • 两者也可以通过 list() 和 tuple() 函数相互转换

列表和元组常见的内置函数,参见如下链接

列表和元组存储方式的差异

16846478-fb96cbd629e43f8f.png

image.png

放置了相同的元素, 但是元组的存储空间, 却比列表要少 16 字节。

由于列表是动态的, 所以它需要存储指针, 来指向对应的元素(上述例子中, 对于 int型, 8 字节) 。 另外, 由于列表可变, 所以需要额外存储已经分配的长度大小(8 字节) , 这样才可以实时追踪列表空间的使用情况, 当空间不足时, 及时分配额外空间。

参考资料:

极客时间 Python核心技术与实战学习

Python核心技术与实战(极客时间)链接:

Python3 列表:

Python3 元组:


GitHub链接:

知乎个人首页:

简书个人首页:

个人Blog:

欢迎大家来一起交流学习

转载地址:https://blog.csdn.net/leacock1991/article/details/101467195 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:《MySQL必知必会》学习笔记(24-29)
下一篇:LeetCode 200. 岛屿数量(Number of Islands)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月07日 10时48分35秒