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

Python字典推导式随机修改10%值报语法错误如何解决

问题原因

你的字典推导式基础结构认知是正确的,确实和列表推导式逻辑类似,仅需把[]换成{}、内部调整为键:值结构即可,本次报错和推导式基础结构无关,是3个具体逻辑/语法错误导致的:

  • 三元表达式语法错误
    Python三元表达式必须遵循值1 if 判断条件 else 值2的完整结构,你直接在值表达式末尾加else val不符合语法规则,是直接触发SyntaxError的核心原因。
  • 随机判断的位置错误
    你把if random.randint(0,9) ==9放在了推导式的末尾过滤位,只有满足条件的键值对才会进入新字典,最终得到的字典会丢失90%的条目,和你「保留所有键、仅修改10%的值」的需求不符。
  • 键表达式逻辑错误
    你写的新键是programmatic_dict[key],相当于把原字典的值作为新字典的键,和你要保留原键的需求完全不符。
修正后的代码
import random

DLM = '~'  # deliminator

programmatic_dict = {
  "brand~test": "Ford",
  "model~test": "Mustang",
  "year~test": "2019"
}
print(programmatic_dict)

programmatic_dict = {
    key: val + DLM + key.rsplit(DLM, 1)[1] if random.randint(0,9) == 9 else val 
    for key, val in programmatic_dict.items()
}
print(programmatic_dict)
效果说明

运行后会保留原字典的所有3个键,约10%概率出现某个值后面拼接了~test后缀,和你给出的预期输出示例完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:15:05