如何为字典各值列表中的每个元素添加前缀'd'?
为字典中列表的每个元素添加前缀
原字典:
original_dict = { 'q1': [5, 6, 90, 91, 119, 144, 181, 399], 'q2': [236, 166], 'q3': [552, 401, 1297, 1296], }
需要实现的目标:为每个值列表中的每个元素添加前缀'd',得到如下结果:
{ 'q1': ['d5', 'd6', 'd90', 'd91', 'd119', 'd144', 'd181', 'd399'], 'q2': ['d236', 'd166'], 'q3': ['d552', 'd401', 'd1297', 'd1296'], }
你之前尝试的代码out = {k: 'd'+str(v) for k,v in out.items()}错误地将整个列表转为字符串后添加前缀,导致结果不符合预期。
正确的做法是在字典推导式中嵌套列表推导式,遍历每个列表里的元素单独处理:
# 使用f-string格式化(Python 3.6+) out = {k: [f'd{num}' for num in v] for k, v in original_dict.items()} # 或者使用字符串拼接 out = {k: ['d' + str(num) for num in v] for k, v in original_dict.items()}
这段代码的逻辑是:
- 外层字典推导式遍历原字典的每一组键值对(k是键,v是对应的值列表)
- 内层列表推导式遍历当前值列表v中的每个元素num,为其添加前缀'd'后组成新的列表
- 最后将新列表作为键k对应的新值,构建出目标字典
内容的提问来源于stack exchange,提问作者Hefe
相关产品推荐
相关产品推荐

