• 周三. 2月 8th, 2023

Python 列表推导式的详细用法

在 Python 中,列表推导式是一种简单而强大的方法来创建列表。它允许你在单个语句中指定一个表达式和一个循环,并在每次迭代时计算表达式的值。

例如,你可以使用列表推导式来创建一个列表,其中包含所有整数的平方:





squares = [x**2 for x in range(10)]
print(squares)

输出:





[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

你也可以使用列表推导式来创建一个列表,其中包含所有偶数的平方:





even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares)

输出:





[0, 4, 16, 36, 64]

在这个例子中,我们使用了一个过滤器来选择只包含偶数的平方的列表。

你也可以使用列表推导式来创建复杂的列表。例如,你可以创建一个列表,其中包含所有坐标对的列表:





coords = [(x, y) for x in range(5) for y in range(3)]
print(coords)

输出:





[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2), (3, 0), (3, 1), (3, 2), (4, 0), (4, 1), (4, 2)]

在这个例子中,我们使用了两个循环来创建所有可能的坐标对。

你还可以使用列表推导式来嵌套循环,使用多个过滤器,并使用复杂的表达式。例如,你可以使用列表推导式来创建一个列表,其中包含所有奇数的平方根:





odd_square_roots = [int(x**0.5) for x in range(10) if x % 2 != 0]
print(odd_square_roots)

输出:





[0, 1, 2, 3]

在这个例子中,我们使用了一个过滤器来选择只包含奇数的平方根,并使用了 int() 函数来将平方根转换为整数。

阅读  Python 计算机视觉库介绍

另外,你也可以使用列表推导式来创建字典和集合。例如,你可以使用列表推导式来创建一个字典,其中键是数字的平方,值是数字的平方根:





square_root_dict = {x: int(x**0.5) for x in range(10)}
print(square_root_dict)

输出:





{0: 0, 1: 1, 4: 2, 9: 3, 16: 4, 25: 5, 36: 6, 49: 7, 64: 8, 81: 9}

在这个例子中,我们使用了一个列表推导式来创建一个字典,其中键是数字的平方,值是数字的平方根。

你还可以使用列表推导式来进行解析和转换。例如,你可以使用列表推导式来将一个字符串列表转换为整数列表:





numbers = ['1', '2', '3', '4']
int_numbers = [int(x) for x in numbers]
print(int_numbers)

输出:





[1, 2, 3, 4]

在这个例子中,我们使用了一个列表推导式来将字符串列表转换为整数列表。

你还可以使用列表推导式来执行解析和转换的复杂任务。例如,你可以使用列表推导式来解析 CSV 文件并将其转换为字典列表:





import csv

with open('data.csv', 'r') as f:
    reader = csv.DictReader(f)
    data = [row for row in reader]

print(data)

在这个例子中,我们使用了一个列表推导式来读取 CSV 文件并将其转换为字典列表。

总之,列表推导式是 Python 中一种非常有用的工具,可以让你在单个语句中快速创建列表、字典和集合,并执行解析和转换任务。