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

Python字典值替换为百分比格式失败,求正确实现方案

修正Python字典值转百分比的代码问题

错误代码示例(你可能的写法)

大概率你写了类似这样的嵌套循环,导致所有值被重复覆盖:

job_role_overtime_att_rate = {'开发': 0.12, '测试': 0.08, '运维': 0.15}

# 错误的嵌套循环
for role in job_role_overtime_att_rate:
    for rate in job_role_overtime_att_rate.values():
        job_role_overtime_att_rate[role] = rate * 100

print(job_role_overtime_att_rate)
# 错误输出: {'开发': 15.0, '测试': 15.0, '运维': 15.0}

正确实现方式

方法1:遍历字典键直接更新

job_role_overtime_att_rate = {'开发': 0.12, '测试': 0.08, '运维': 0.15}

# 单层循环遍历每个岗位,更新对应加班率为百分比
for role in job_role_overtime_att_rate:
    job_role_overtime_att_rate[role] *= 100

print(job_role_overtime_att_rate)
# 输出: {'开发': 12.0, '测试': 8.0, '运维': 15.0}

方法2:使用字典推导式(简洁生成)

如果想要更简洁的写法,或者生成新字典不修改原数据:

job_role_overtime_att_rate = {'开发': 0.12, '测试': 0.08, '运维': 0.15}

# 推导式生成百分比字典,可直接赋值给原变量覆盖
job_role_overtime_att_rate = {role: rate * 100 for role, rate in job_role_overtime_att_rate.items()}

print(job_role_overtime_att_rate)

方法3:遍历键值对更新

job_role_overtime_att_rate = {'开发': 0.12, '测试': 0.08, '运维': 0.15}

for role, rate in job_role_overtime_att_rate.items():
    job_role_overtime_att_rate[role] = rate * 100

print(job_role_overtime_att_rate)

错误原因

嵌套循环会让每个岗位的加班率被反复替换,最终所有岗位的值都会被设置为字典最后一个值的百分比,所以出现重复错误结果。只需要单层循环遍历键或键值对,就能逐个更新对应的值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:50:28