Python中的列表推导与字典推导
Python提供了推导式,作为一种简洁的方式来创建列表、字典,甚至集合。其中最常见的两种是列表推导和字典推导。让我们来探讨它们之间的区别以及如何使用它们——包括将两个列表合并成一个字典。
列表推导
列表推导通过遍历一个可迭代对象并应用一个表达式来创建一个列表。
语法:
[expression for item in iterable if condition]
示例:
numbers = [1, 2, 3, 4, 5]
squares = [n**2 for n in numbers]
print(squares)
# [1, 4, 9, 16, 25]
在这里,squares
是一个列表,其中每个数字都被平方。
字典推导式
字典推导式 用于创建一个包含键值对的字典。
语法:
{key_expr: value_expr for item in iterable if condition}
示例:
numbers = [1, 2, 3, 4, 5]
square_dict = {n: n**2 for n in numbers}
print(square_dict)
# {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
在这里,每个数字作为键,其平方作为值。
将两个列表合并为字典
假设你有两个列表:
keys = ["a", "b", "c"]
values = [1, 2, 3]
您可以使用字典推导式将它们组合成一个字典。
1. 使用 zip()
最符合Python风格的方法:
my_dict = {k: v for k, v in zip(keys, values)}
print(my_dict)
# {'a': 1, 'b': 2, 'c': 3}