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

Python:如何通过for循环生成字典列表?代码问题求助

问题分析与修改方案

原代码有两个关键问题导致无法生成汇总的字典列表:

  1. complete_list在循环内部定义,每次循环都会重新创建空列表,没法累积所有字母对应的字典
  2. 循环里复用同一个letters_dict对象,每次修改都是覆盖该字典的内容,最终列表里的所有元素都会指向同一个字典,值会被最后一次循环的结果覆盖

修改后的代码

class Word():
    def __init__(self, chosen_word=''):
        self.chosen_word = chosen_word   

    def create_list_dict(self):
        letter_list = list(self.chosen_word)
        complete_list = []  # 把列表初始化移到循环外
        for letter in letter_list:     
            # 每次循环创建新字典,避免复用同一对象
            letters_dict = {
                'letter': letter,
                'guessed': False
            }
            complete_list.append(letters_dict)
        return complete_list  # 返回汇总后的列表


hello = Word('hello')
print(hello.create_list_dict())

代码说明

  • 将complete_list的初始化移到for循环外部,确保每次循环都能往同一个列表里添加元素
  • 把letters_dict的定义放到循环内部,每次迭代都创建新的字典对象,保证每个字母对应独立的字典
  • 新增return complete_list语句,让方法能返回最终的汇总列表,方便外部调用和打印

运行修改后的代码,输出结果为:

[{'letter': 'h', 'guessed': False}, {'letter': 'e', 'guessed': False}, {'letter': 'l', 'guessed': False}, {'letter': 'l', 'guessed': False}, {'letter': 'o', 'guessed': False}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:27:14