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
相关产品推荐
相关产品推荐

