Python面试题更新 2026-08-05

如何使用单行Python代码从给定的列表中分别筛选出所有偶数和奇数?

编码实现Python

考察说明

考察对Python列表推导式及条件判断的掌握程度

回答思路

  1. 【回答框架 1】列表推导式是Python中常用的构造列表的语法,可以在单行内完成遍历和筛选。其基本形式为[expression for item in iterable if condition],其中expression是对item的变换,if condition用于过滤元素。
  2. 【回答框架 2】对给定的列表lst,偶数筛选可写为[x for x in lst if x % 2 == 0],奇数筛选可写为[x for x in lst if x % 2 != 0]。利用取模运算符%判断除以2的余数,若为0则为偶数,否则为奇数。
  3. 【回答框架 3】题目要求‘取出所有偶数和奇数’,可理解为需要分别得到偶数和奇数两个列表,因此单行代码可以是even = [x for x in lst if x % 2 == 0]和odd = [x for x in lst if x % 2 != 0],每行使用一次推导式,共两行,但每行都是单行完成筛选逻辑。
  4. 【回答框架 4】若需在一行内同时得到两个列表,可借助其他手段,如使用filter函数和lambda表达式,但列表推导式更简洁直观。注意事项:列表推导式返回新列表,不改动原列表;对非整数元素需先处理类型,否则模运算会出错。
  5. 【关键点 1】列表推导式语法:偶数[x for x in lst if x % 2 == 0]
  6. 【关键点 2】奇数筛选用条件x % 2 != 0或x % 2 == 1
  7. 【关键点 3】取模运算%是判断奇偶的核心操作
  8. 【易错点 1】不能将偶数和奇数筛选写成一个推导式同时返回两个列表,除非使用一次遍历并分条件构建多个列表的策略
  9. 【易错点 2】注意列表元素类型,若包含非整数,直接取模会抛出TypeError