欢迎访问宙启技术站
智能推送

Python中的列表推导式:用法及示例

发布时间:2023-08-22 05:57:06

在Python中,列表推导式(List Comprehension)是一种简洁且强大的方式,用于从一个可迭代对象(如列表、元组、集合等)生成新的列表。它可以在一行代码中将原始数据转换成需要的形式,同时也可以通过添加筛选条件来过滤元素。

列表推导式的基本语法如下:

[expression for item in iterable if condition]

其中,expression是要对item执行的操作,item是可迭代对象中的元素,iterable是我们要迭代的对象,condition是一个可选的筛选条件。下面我们来看一些例子。

1. 将原始列表中的每个元素加倍:

numbers = [1, 2, 3, 4, 5]

doubled_numbers = [n * 2 for n in numbers]

print(doubled_numbers)

输出:[2, 4, 6, 8, 10]

2. 筛选出原始列表中的偶数:

numbers = [1, 2, 3, 4, 5]

even_numbers = [n for n in numbers if n % 2 == 0]

print(even_numbers)

输出:[2, 4]

3. 生成一个包含字母表中每个字母对应ASCII码的列表:

ascii_vals = [ord(letter) for letter in 'abcdefghijklmnopqrstuvwxyz']

print(ascii_vals)

输出:[97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122]

4. 生成一个包含两个列表中元素的所有对组成的新列表:

list1 = [1, 2, 3]

list2 = ['a', 'b', 'c']

combo_list = [(n, letter) for n in list1 for letter in list2]

print(combo_list)

输出:[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]

列表推导式也可以嵌套使用,用于处理多维数据结构。以下是一个示例,将一个二维列表中的所有元素提取到一个新的一维列表中:

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

flat_matrix = [num for row in matrix for num in row]

print(flat_matrix)

输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]

除了基本的列表推导式,Python还提供了字典推导式和集合推导式,它们的语法和列表推导式类似,只是用大括号{}和冒号:来表示字典的键值对或集合的元素。

总结起来,列表推导式是一种简洁而强大的方式,用于从一个可迭代对象生成新的列表。它可以通过对原始数据执行操作和添加筛选条件,快速生成满足需求的列表,同时具有代码简洁和可读性强的特点。在日常编码中,列表推导式能够帮助我们提高效率和代码质量。