13|列表(上):Python语言的核心数据结构
海纳
你好,我是海纳。
在第 7 节课,我们实现了 Python 的两个基本的内建类型:整数和字符串,从而构建了虚拟机的最基本的对象系统。从这节课开始,我们来实现两个重要的基本内建类型,分别是列表(list)和字典(dict)。
我们先来研究如何实现列表。
列表的定义
Python 中的列表很像数组操作,可以支持对元素的插入、添加、删除等操作。实际上 Python 的 list 和 C++ STL 中的 vector 非常相似。区别在于,Python 的 list 允许它的元素是不同类型的。我们以一个例子来说明 list 的特性。
上面的代码定义了一个列表,这个列表包含了两个元素。第一个元素是整数 1,第二个元素是字符串 “hello”。第二行代码把这个列表打印了出来。
通过 show_file 工具,我们能观察到 Python 为了定义列表引入了新的字节码。这节课我们的任务就是实现这些定义列表所用的字节码。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. Python中的列表类似于数组操作,支持元素的插入、添加、删除等操作,与C++ STL中的vector相似,但Python的列表允许不同类型的元素。 2. 实现了列表的字节码BUILD_LIST,引入ListKlass为列表类增加类型标志,并在ListKlass中实现相应的方法。 3. 实现了列表的取下标操作,通过引入subscr方法和在ListKlass中实现相应的逻辑来支持列表的下标操作。 4. 实现了列表中查找元素的功能,通过引入contains方法和在ListKlass中实现相应的逻辑来支持判断列表中是否包含某元素。 5. 实现了列表的删除操作,通过在ListKlass中实现相应的逻辑来支持删除列表中的元素。 6. 实现了列表的增加操作,通过在ListKlass中实现相应的逻辑来支持向列表中添加元素。 7. 实现了列表的修改操作,通过在ListKlass中实现相应的逻辑来支持修改列表中的元素。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手写 Python 虚拟机》,新⼈⾸单¥59
《手写 Python 虚拟机》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论