当谈到理解Python中的推导式(特别是字典推导式)时,通过具体的例子来展示其用法是非常有效的。下面我将提供几个例子来帮助你更好地理解字典推导式的应用。
1. 字典变换
假设我们有一个包含股票代码和价格的字典,我们想要将每个股票的价格都增加2%。
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)
# 输出: {'AAPL': 123.42, 'AMZN': 3447.6, 'MSFT': 223.38, 'BIIB': 285.6, 'QDEL': 271.32, 'LVGO': 146.88}
2. 字典过滤
假设我们想要从上面的stocks
字典中筛选出价格大于200的股票。
# 使用字典推导式
selected_stocks = {s: p for s, p in stocks.items() if p > 200}
print(selected_stocks)
# 输出: {'AMZN': 3380}
3. 字典键值处理
假设我们有一个字典,其键和值都是字符串,我们想要将键转换为大写,值转换为小写。
original_dict = {'name': 'Alice', 'age': '30', 'city': 'New York'}
# 使用字典推导式
processed_dict = {key.upper(): value.lower() for key, value in original_dict.items()}
print(processed_dict)
# 输出: {'NAME': 'alice', 'AGE': '30', 'CITY': 'new york'}
4. 合并列表为字典
假设我们有两个列表,一个包含键,另一个包含值,我们想要将它们合并成一个字典。
keys = ['a', 'b', 'c']
values = [1, 2, 3]
# 使用zip和字典推导式
merged_dict = {k: v for k, v in zip(keys, values)}
print(merged_dict)
# 输出: {'a': 1, 'b': 2, 'c': 3}
5. 字典条件赋值
假设我们有一个包含学生姓名和分数的字典,我们想要创建一个新字典,其中分数高于60的学生通过,否则标记为’Fail’。
scores = {'Alice': 75, 'Bob': 55, 'Charlie': 85}
# 使用字典推导式
pass_fail = {name: 'Pass' if score > 60 else 'Fail' for name, score in scores.items()}
print(pass_fail)
# 输出: {'Alice': 'Pass', 'Bob': 'Fail', 'Charlie': 'Pass'}
总结
通过上述例子,你可以看到字典推导式在Python中是一个非常强大且灵活的工具,它允许你以简洁的方式创建、变换和过滤字典。无论是增加价格、筛选数据、处理键值,还是合并列表为字典,字典推导式都能提供高效的解决方案。