文章目录

Python 字典推导式:快速创建字典的方法

发布于 2026-04-09 22:24:42 · 浏览 5 次 · 评论 0 条

Python 字典推导式:快速创建字典的方法

字典推导式是一种用一行代码构建字典的强大工具。它替代了繁琐的 for 循环和手动赋值,让代码更整洁、运行速度更快。


基础用法:从两个列表创建字典

当你拥有两个列表,一个包含键,一个包含值,想要将它们组合成字典时,使用字典推导式是最快的。

  1. 准备两个列表,例如 keys(键)和 values(值)。
  2. 使用 zip() 函数将两个列表打包在一起。
  3. 编写推导式语法:{key: value for key, value in zip(keys, values)}

代码示例

fruits = ['apple', 'banana', 'orange']
prices = [10, 5, 8]

# 传统写法(繁琐)
price_dict = {}
for fruit, price in zip(fruits, prices):
    price_dict[fruit] = price

# 字典推导式写法(推荐)
price_dict = {fruit: price for fruit, price in zip(fruits, prices)}

print(price_dict)
# 输出: {'apple': 10, 'banana': 5, 'orange': 8}

进阶用法:带条件的筛选

如果你只想保留满足特定条件的数据,可以在推导式末尾添加 if 语句。

  1. 确定筛选条件,例如只保留价格大于 6 的水果。
  2. 添加 if value > 6 到循环表达式的末尾。
  3. 执行代码,只有符合条件的数据才会进入新字典。

代码示例

fruits = ['apple', 'banana', 'orange']
prices = [10, 5, 8]

# 筛选出价格大于 6 的水果
expensive_fruits = {fruit: price for fruit, price in zip(fruits, prices) if price > 6}

print(expensive_fruits)
# 输出: {'apple': 10, 'orange': 8}

实战技巧:处理与修改数据

字典推导式不仅能筛选,还能在创建字典时直接修改数据。

  1. 输入原始数据,例如包含价格的字典。
  2. 编写表达式对值进行运算,例如将所有价格打 8 折(乘以 0.8)。
  3. 观察结果,新字典中的值已经是计算后的结果。

代码示例

original_prices = {'apple': 10, 'banana': 5, 'orange': 8}

# 将所有价格乘以 0.8
discounted_prices = {fruit: price * 0.8 for fruit, price in original_prices.items()}

print(discounted_prices)
# 输出: {'apple': 8.0, 'banana': 4.0, 'orange': 6.4}

特殊场景:交换键和值

有时你需要快速反转字典的映射关系(例如通过值查找键)。

  1. 获取原始字典的键值对。
  2. 交换 for 循环中的位置,将 value 放在冒号前,key 放在冒号后。
  3. 注意:此操作要求原始字典的所有值必须是唯一的,否则后面的键会覆盖前面的键。

代码示例

mapping = {'a': 1, 'b': 2, 'c': 3}

# 交换键和值
reversed_mapping = {value: key for key, value in mapping.items()}

print(reversed_mapping)
# 输出: {1: 'a', 2: 'b', 3: 'c'}

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文