【Python入门教程】第42篇 字典推导式
作者:互联网
本篇我们将会介绍如何利用字典推导式(dictionary comprehension)对字典元素进行变换和过滤。
字典推导式简介
字典推导式可以针对字典执行一个 for 循环,对每个元素执行某些操作(例如变换或者过滤),然后返回一个新的字典。
与 for 循环不同,字典推导式提供了一个更具表达能力和简洁性的语法。以下是字典推导式的基本语法:
{key:value for (key,value) in dict.items() if condition}
字典推导式的返回结果是一个新的字典,元素由表达式 key: value 指定。
字典推导式示例
下面我们通过两个示例来了解一下字典推导式的应用。
示例一:字典变换
字典 stocks 包含了股票代码和价格:
stocks = {
'AAPL': 121,
'AMZN': 3380,
'MSFT': 219,
'BIIB': 280,
'QDEL': 266,
'LVGO': 144
}
以下代码将每个股票的价格都增加了 2%:
stocks = {
'AAPL': 121,
'AMZN': 3380,
'MSFT': 219,
'BIIB': 280,
'QDEL': 266,
'LVGO': 144
}
new_stocks = {}
for symbol, price in stocks.items():
new_stocks[symbol] = price*1.02
print(new_stocks)
输出结果如下:
{'AAPL': 123.42, 'AMZN': 3447.6, 'MSFT': 223.38, 'BIIB': 285.6, 'QDEL': 271.32, 'LVGO': 146.88}
以上代码的执行过程如下:
- 首先,遍历字典 stocks 中的每个元素。
- 其次,将价格增加 2% 并且将结果添加到新的字典 new_stocks。
以下示例使用字典推导式实现了相同的结果:
stocks = {
'AAPL': 121,
'AMZN': 3380,
'MSFT': 219,
'BIIB': 280,
'QDEL': 266,
'LVGO': 144
}
new_stocks = {symbol: price * 1.02 for (symbol, price) in stocks.items()}
print(new_stocks)
下面的 for 循环和字典推导式等价:
# for 循环
new_stocks = {}
for symbol, price in stocks.items():
new_stocks[symbol] = price*1.02
# 字典推导式
new_stocks = {symbol: price * 1.02 for (symbol, price) in stocks.items()}
示例二:字典过滤
以下 for 循环用于返回价格大于 200 的股票:
stocks = {
'AAPL': 121,
'AMZN': 3380,
'MSFT': 219,
'BIIB': 280,
'QDEL': 266,
'LVGO': 144
}
selected_stocks = {}
for symbol, price in stocks.items():
if price > 200:
selected_stocks[symbol] = price
print(selected_stocks)
以上代码的执行过程如下:
- 首先,遍历字典 stocks 中的元素。
- 然后,如果股票价格大于 200,将其添加到新的字典 selected_stocks。
以下示例使用字典推导式实现了相同的结果:
stocks = {
'AAPL': 121,
'AMZN': 3380,
'MSFT': 219,
'BIIB': 280,
'QDEL': 266,
'LVGO': 144
}
selected_stocks = {s: p for (s, p) in stocks.items() if p > 200}
print(selected_stocks)
下面的 for 循环和字典推导式等价:
# for 循环
selected_stocks = {}
for symbol, price in stocks.items():
if price > 200:
selected_stocks[symbol] = price
# 字典推导式
selected_stocks = {s: p for (s, p) in stocks.items() if p > 200}
总结
- 字典推导式用于遍历字典中的元素并且对其进行变换或者过滤,然后创建一个新的字典。
标签:selected,推导,Python,price,入门教程,42,stocks,symbol,字典 来源: https://blog.csdn.net/horses/article/details/122490215