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

创建Python字典时能否直接根据当前键设置对应值

Python不支持你示例中在字典字面量定义阶段直接引用当前键的写法,因为字典对象在字面量赋值完成前还未初始化完成,无法获取到当前正在赋值的键。你可以用以下方案实现同等需求:

方案1:字典推导式(首选)

预先整理好所有需要设置的键,直接通过字典推导式构建即可,代码简洁易读:

# 提前定义所有键
keys = ["a", "b", "c"]
dictionary = {key: f"Key of this = {key}" for key in keys}

运行后输出结果和你预期完全一致:

>>> dictionary
{'a': 'Key of this = a', 'b': 'Key of this = b', 'c': 'Key of this = c'}

方案2:配合自定义函数处理复杂逻辑

如果值的生成规则比较复杂,你可以把生成逻辑封装成单独函数再调用:

def build_value(key):
    # 可在此处添加更多自定义处理逻辑
    return f"Key of this = {key}"

dictionary = {key: build_value(key) for key in ["a", "b", "c"]}

方案3:自定义字典类(仅大量复用该规则时使用)

如果你需要频繁创建这种值和键关联的字典,可以继承原生dict类自定义规则:

class AutoBindKeyDict(dict):
    def __setitem__(self, key, val):
        # 约定值中用{key}作为当前键的占位符
        super().__setitem__(key, val.format(key=key))

d = AutoBindKeyDict()
d["a"] = "Key of this = {key}"
d["b"] = "Key of this = {key}"
d["c"] = "Key of this = {key}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:21:03