热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[Python核心技术与实战学习]02列表和元组

列表和元组基础列表和元组,都是一个可以放置任意数据类型的有序集合。在绝大多数编程语言中,集合的数据类型必须一致。不过,对于Python的

 

列表和元组基础

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

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

列表和元组区别:

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

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

#!/usr/bin/python3tup1 = (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() 函数相互转换

列表和元组常见的内置函数,参见如下链接
https://www.runoob.com/python3/python3-list.html
https://www.runoob.com/python3/python3-tuple.html

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

16846478-fb96cbd629e43f8f.png

image.png

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

参考资料:

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

Python核心技术与实战(极客时间)链接:
http://gk.link/a/103Sv

Python3 列表:
https://www.runoob.com/python3/python3-list.html

Python3 元组:
https://www.runoob.com/python3/python3-tuple.html



GitHub链接:
https://github.com/lichangke/LeetCode


知乎个人首页:
https://www.zhihu.com/people/lichangke/


简书个人首页:
https://www.jianshu.com/u/3e95c7555dc7


个人Blog:
https://lichangke.github.io/


欢迎大家来一起交流学习


推荐阅读
author-avatar
缘zhi韵_297
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有