← 返回 Day 18 正文

Day 18 · 练习与清单

Day 018 — 练习题与检查表

练习题

基础题

  1. 平方数列表:用列表推导式生成 1 到 20 的平方数列表。

  2. 偶数过滤:从 numbers = [1, 5, 8, 12, 15, 20, 23, 30] 中过滤出所有偶数,并乘以 3。

  3. 字典构建:用字典推导式从 words = ['apple', 'banana', 'cherry', 'date'] 构建单词→长度的映射。

  4. 集合去重:用集合推导式从 text = "hello world python programming" 中提取所有不重复的字母。

进阶题

  1. 嵌套扁平化:将 [[1, 2], [3, 4, 5], [6], [7, 8, 9, 10]] 用一条推导式扁平化。

  2. 字典过滤:给定 scores = {'Alice': 85, 'Bob': 42, 'Charlie': 73, 'Diana': 91, 'Eve': 58},找出一行代码找出所有分数 >= 60 的姓名。

  3. 笛卡尔积:用推导式生成集合 {1, 2, 3} 与 {4, 5} 的所有有序对,且两个元素的和为奇数。

  4. 矩阵旋转:用推导式实现矩阵顺时针旋转 90°。

  5. 生成器求和:用生成器表达式计算 1 到 1,000,000 之间所有奇数的立方和(不创建大列表)。

挑战题

  1. 素数判断:用列表推导式找出 2–100 之间的所有素数。(提示:使用 all())

  2. 单词统计:给定一段文本,用推导式统计每个单词出现的次数(忽略大小写和标点)。

  3. 性能优化:给定一个包含 10,000 个整数的列表,分别用推导式和 map() 将每个数取平方,用 timeit 比较两者速度差异。


检查表

完成本日后,你应该能够:

概念理解

动手能力

实战技能

自我评估