如何将字典的取值作为另一字典的键并实现目标转换
问题分析与解决方案
当前方法的问题
你的代码存在两个关键问题:
- 字典A的定义错误:
A = {A:1,B:2,C:3}中,键A、B、C是未定义的变量,运行时会触发NameError。需要将键改为合法的可哈希类型(比如字符串),比如{'A':1, 'B':2, 'C':3}。 - 推导式写法可优化:虽然
values[1]能取到原字典的值,但使用元组解构会更清晰易读。
修正后的推导式写法
修正字典A的定义,并优化推导式:
A = {'A': 1, 'B': 2, 'C': 3} B = {val: val * 2 for _, val in A.items()}
运行后即可得到期望结果:{1:2, 2:4, 3:6}。这里用_, val解构A.items()返回的(键, 值)元组,_表示忽略原键,完全匹配你的需求。
替代方案
如果不想用字典推导式,还有两种常用实现方式:
1. 使用dict()构造器结合生成器表达式
A = {'A': 1, 'B': 2, 'C': 3} B = dict((val, val * 2) for _, val in A.items())
2. 普通循环遍历
适合需要额外逻辑处理的场景:
A = {'A': 1, 'B': 2, 'C': 3} B = {} for _, val in A.items(): B[val] = val * 2
内容的提问来源于stack exchange,提问作者FalconX
相关产品推荐
相关产品推荐

