Python 列表推导式是一种用于快速创建一个新列表的语法结构。它的基本语法如下:
[expression for item in iterable if condition]
其中,
item
是迭代的元素;iterable
是一个可迭代的对象,例如列表、元组、集合、字典等;expression
是对item
进行处理的表达式;if condition
是一个可选项,表示只有当满足条件时才对item
进行处理。
例如,以下代码使用列表推导式创建一个新列表,其中为原列表中的每个元素平方,且仅包含大于 10 的元素:
original = [1, 5, 10, 15, 20]
new_list = [x**2 for x in original if x > 10]
print(new_list) # 输出 [225, 400]
习题
Python 列表推导式
使用列表推导式过滤出偶数列表
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print('')
print("# 使用列表推导式过滤出偶数")
# TODO(you): 请在此实现过滤代码
for n in even:
print(n)
print('')
even = [n for n in list if n % 2 != 0]
该代码不能实现过滤出偶数列表的功能,因为判断条件为 n % 2 != 0,这个条件筛选出的是奇数。应该将条件改为 n % 2 == 0 才能筛选出偶数。
even = [n for n in list if n % 2 == 0]
该语句使用列表推导式生成一个新列表,其中包含原列表 list 中的所有偶数元素。在 if 条件语句中,使用 % 操作符判断元素是否为偶数,从而进行筛选。