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

Python遍历pets列表中的宠物字典时如何自动输出对应字典变量名

问题原因

Python列表中存储的是jumbo、snoopy等变量指向的字典对象引用,不会保留变量名本身的信息,因此直接遍历列表无法自动获取到原来的变量名,可通过以下两种方案解决:

方案1:调整列表存储结构,存储「宠物名-信息字典」元组

无需修改原有字典结构,仅调整列表和遍历逻辑即可:

jumbo = {"kind":"cat",
         "owner":"Rahma",
}

snoopy = {"kind":"dog",
          "owner":"fahad",
}

shilla = {"kind":"bird",
          "owner":"farooq",
}

# 列表存入元组,第一个元素为宠物名,第二个为对应的信息字典
pets = [("jumbo", jumbo), ("snoopy", snoopy), ("shilla", shilla)]

for pet_name, pet_info in pets :
    print(f"{pet_name} is {pet_info['kind']}, the owner is {pet_info['owner'].title()}.")

方案2:给字典新增name字段存储宠物名

把宠物名直接存入字典内部,后续遍历和使用更灵活:

jumbo = {
    "name": "jumbo",
    "kind":"cat",
    "owner":"Rahma",
}

snoopy = {
    "name": "snoopy",
    "kind":"dog",
    "owner":"fahad",
}

shilla = {
    "name": "shilla",
    "kind":"bird",
    "owner":"farooq",
}

pets = [jumbo, snoopy, shilla]

for pet in pets :
    print(f"{pet['name']} is {pet['kind']}, the owner is {pet['owner'].title()}.")

另外注意你原有代码的print语句末尾多了一个多余的右括号,运行时会触发语法错误,修改时需要删除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:24:05