如何更有效地创建9x9网格?(Python,Tkinter)

如何更有效地创建9x9网格?(Python,Tkinter),python,python-3.x,tkinter,tkinter-canvas,Python,Python 3.x,Tkinter,Tkinter Canvas,我正在为数独游戏生成器创建一个9x9网格。 到目前为止,我已经为第一行框架创建了9个变量,并给出了9个变量网格行/列。下面是我正在使用的代码 我需要一种更有效的方法,因为我必须为网格创建81个这样的单元。我怎样才能做得更有效/更好?请帮忙 代码: 行的循环和列的循环。在字典中存储对小部件的引用: cells = {} for row in range(9): for column in range(9): cell = Frame(center, bg='white',

我正在为数独游戏生成器创建一个9x9网格。 到目前为止,我已经为第一行框架创建了9个变量,并给出了9个变量网格行/列。下面是我正在使用的代码

我需要一种更有效的方法,因为我必须为网格创建81个这样的单元。我怎样才能做得更有效/更好?请帮忙

代码:


行的循环和列的循环。在字典中存储对小部件的引用:

cells = {}
for row in range(9):
    for column in range(9):
        cell = Frame(center, bg='white', highlightbackground="black",
                     highlightcolor="black", highlightthickness=1,
                     width=100, height=100,  padx=3,  pady=3)
        cell.grid(row=row, column=column)
        cells[(row, column)] = cell
通过上述操作,您可以通过
单元格
指令引用任何小部件。例如,要将第3行第4列(从零开始计数)中的单元格设置为红色,您可以执行以下操作:

cells[(3,4)].configure(background="red")

使用for循环<代码>对于范围内的i(81):这是一个好问题,但在其他地方有很好的答案。搜索有关嵌套列表(Python)或二维数组(tkinter)的教程。堆栈溢出不是关于一个开创性编程主题的教程的地方。尝试过,但它出现了一个语法错误在这种特殊情况下,
cells=dict()
cells=list()
有什么优势吗?当使用
grid
layout时,我通常觉得使用list更容易。@Nae:任何优势都是主观的。我个人觉得字典比列表更容易使用。@TomConboy:代码中没有语法错误。我可以直接将代码剪切并粘贴到一个小程序中,它不需要修改就可以工作。但是,它确实采用了与您使用的导入样式不同的导入样式。我将更新它以使用您的导入样式,尽管这不是首选方式。对。我使用了这段代码,它出现了一个错误。我不确定你建议的代码应该替换什么?这个项目远高于我的编码水平,尽管我必须为学校做。这是我运行的代码:
cells[(3,4)].configure(background="red")