以下是一个关于字典推导式和列表推导式的具体例子,以说明它们的应用和区别。
字典推导式例子
假设我们有一个包含股票代码和当前价格的列表(虽然通常这种数据会存储在字典中,但为了演示目的,我们先使用列表),并且我们想要将这个列表转换为一个字典,其中股票代码作为键,价格作为值。同时,我们还想将所有价格增加10%。
原始数据(以列表形式给出,但通常会是字典):
# 注意:实际中这应该是字典,但为了演示我们从列表开始
stock_list = [('AAPL', 120), ('AMZN', 3000), ('MSFT', 200)]
使用字典推导式转换并增加价格:
# 将列表转换为字典,并增加价格
stocks = {code: price * 1.1 for code, price in stock_list}
print(stocks)
# 输出: {'AAPL': 132.0, 'AMZN': 3300.0, 'MSFT': 220.0}
在这个例子中,字典推导式遍历了stock_list
列表中的每个元素(即股票代码和价格的元组),然后创建了一个新的字典stocks
,其中包含了股票代码作为键,增加10%后的价格作为值。
列表推导式例子
现在,假设我们有一个数字列表,并且我们想要创建一个新列表,其中包含原始列表中每个数字的平方。
原始数据:
numbers = [1, 2, 3, 4, 5]
使用列表推导式计算平方:
# 计算每个数字的平方
squared_numbers = [num ** 2 for num in numbers]
print(squared_numbers)
# 输出: [1, 4, 9, 16, 25]
在这个例子中,列表推导式遍历了numbers
列表中的每个元素,计算了它们的平方,并将结果存储在一个新的列表squared_numbers
中。
总结
- 字典推导式:用于从可迭代对象(如列表、元组等)中快速生成字典,其中可以包含复杂的键值对生成逻辑和条件过滤。
- 列表推导式:用于从可迭代对象中快速生成列表,其中包含对原始元素的转换或基于条件的过滤。
这两个特性都是Python中非常强大的工具,能够极大地简化代码并提高可读性。