14|列表(下):列表所支持的基本操作
海纳
你好,我是海纳。
上节课我们介绍了列表的基本实现,初步实现了往列表中增加新元素、修改列表中的元素等功能。这节课我们会继续实现列表支持的其他基本操作,主要包括删除元素、对元素进行排序,以及迭代访问列表元素等功能。
删除元素
从列表中删除元素,如果是删除最后一个元素,可以直接使用 list 的 pop 方法。pop 方法与 append 方法刚好是一对逆操作。append 用来在列表的末尾添加元素,而 pop 则是删除列表的最后一个元素。
而删除指定位置的元素有两种方法,一种是使用 del 关键字,另一种是使用列表的 remove 方法。接下来,我们逐个实现它们。先从 pop 方法开始。
实现 pop 方法
先使用 C++ 实现 list_pop 函数,用于将列表末尾的元素删除。list_pop 只需要简单地调用列表对象上的 pop 方法即可。而 pop 方法在第 4 节课中定义 list 的时候,我们就已经实现了。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. 实现列表的基本操作,包括删除元素、对元素进行排序,以及迭代访问列表元素等功能。 2. 实现删除元素的方法,包括使用 pop 方法删除最后一个元素,使用 del 关键字删除指定位置的元素,以及使用 remove 方法删除与指定参数相等的值。 3. 实现对列表元素进行排序,包括 reverse 方法用于倒序排列,sort 方法用于升序排列。 4. 实现列表的 pop 方法,通过调用列表对象上的 pop 方法实现列表末尾元素的删除。 5. 实现列表的 del 关键字,引入新的字节码 DELETE_SUBSCR,并在 HiObject 中添加 del_subscr 方法以及在 ListKlass 中实现该虚函数。 6. 实现列表的 remove 方法,通过 equal 方法比较列表中的元素与输入参数是否相等,若相等则调用 delete_index 方法删除元素。 7. 实现列表的 sort 方法,采用冒泡排序算法,使列表元素按从小到大的顺序排列。 8. 实现列表的迭代器,包括 GET_ITER 和 FOR_ITER 字节码的实现,以及 ListIteratorKlass 和 ListIterator 的设计和实现。 9. 优化迭代器部分,通过引入 StringTable 类记录字符串常量,避免重复创建对象,提高性能。 10. 完成删除元素的所有方法的实现,并进行综合测试验证。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手写 Python 虚拟机》,新⼈⾸单¥59
《手写 Python 虚拟机》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论