You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效为Python字典的所有键添加新键,生成元组形式的键?

高效实现字典键的元组转换

针对你提出的需求——把原字典的每个键都包装成('foo', 原键)的元组作为新键,同时保留对应的值,最简洁高效的实现方式是使用字典推导式,这也是Python处理这类字典转换场景的惯用手法。

方法一:字典推导式(推荐)

initial_dict = {'val_1': 2, 'val_2': 4}
final_dict = {('foo', key): value for key, value in initial_dict.items()}

这个方法的优势很明显:

  • 代码简洁直观,一行就能完成转换
  • 底层是Python优化过的内置逻辑,比手动循环的执行效率更高
  • 可读性强,一眼就能看明白是把每个键和'foo'组成元组作为新键

方法二:生成器表达式配合dict()构造器

如果偏好更“函数式”的写法,也可以用生成器表达式传入dict():

final_dict = dict((('foo', key), value) for key, value in initial_dict.items())

效果和字典推导式完全一致,但在Python 3.x之后,字典推导式的可读性和性能表现更优,所以更推荐第一种。

方法三:手动循环(适合需要额外逻辑的场景)

如果后续需要在转换过程中添加额外的判断或处理逻辑,手动循环的方式更灵活:

initial_dict = {'val_1': 2, 'val_2': 4}
final_dict = {}
for key, value in initial_dict.items():
    final_dict[('foo', key)] = value

这种写法虽然代码量多一点,但扩展性更好,比如你可以在循环里加入条件判断,只处理特定的键。

执行以上任意一种方法后,final_dict都会得到你想要的结果:

print(final_dict)
# 输出: {('foo', 'val_1'): 2, ('foo', 'val_2'): 4}

内容的提问来源于stack exchange,提问作者heisen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:29:53