Python 进阶
列表高级操作
就练列表的切片、排序、枚举这几个高级用法。
- 熟练使用切片操作
- 掌握 sort/sorted 高级排序
- 使用 enumerate 和 zip
切片进阶
切片语法是 list[start:stop:step],三个参数都可以省略,也可以写负数。
示例代码(可运行)
Python 0%
排序
示例代码(可运行)
Python 0%
⚠️sort() 返回 None!
list.sort() 原地排序并返回 None。新手常写 new = old.sort(),结果 new 是 None。要用 new = sorted(old)。
enumerate 和 zip
示例代码(可运行)
Python 0%
预测输出
nums = [1,2,3,4,5]
print(nums[::-2])找 Bugsort() 返回 None,不是排序后的列表。
nums = [3,1,2]
result = nums.sort()
print(result)
填空题填写空白处的代码
nums = [10,20,30,40,50]
print(nums[]) # [40, 50]
选择题
enumerate(['a','b']) 第一次迭代产生?
资深工程师加餐
底层原理 · 大厂视角 · 工程经验,点卡片展开
list 底层是一段连续的指针数组,容量不够时整体扩容(CPython 约按 1.125 倍)。因此按下标取元素是 O(1),末尾 append 均摊 O(1),但在头部 insert(0,…) 或 pop(0) 要搬动全部元素、是 O(n)。dict/set 基于哈希表,平均查找 O(1) 但更耗内存。选对数据结构,往往比抠语法更影响性能。
挑战任务
列表操作挑战
简单+50 XP
就这么简单。给个列表,用切片和排序就能搞定:输出反转后的前3个最大值。
列表操作挑战
Python 0%
2 个测试用例
课后作业
矩阵转置
中等+20 XP
用zip将3x3矩阵转置。
矩阵转置
Python 0%
1 个测试用例