Для хранения используемых значений хочу использовать словарь.
import tkinter from tkinter.ttk import Entry, Combobox, Checkbutton variables_list = ['list','entry','check'] # это те значения, что различаются constants = { 'names':['alex','billy'], 'color': {'red':12, 'green':15, 'yellow':19, 'brown':18, 'grey':6}, } class MainWindow(): def __init__(self): #создаю окно self.root = tkinter.Tk() def label_const(self): #рисую кнопки и пишу названия строчек for i in variables_list: tkinter.Label(self.root,text = i).place(y = 20 + variables_list.index(i)*20) tkinter.Button(self.root,text = 'Set',command = self.label_var).place(y=80) tkinter.Button(self.root,text = 'Get',command = self.label_get).place(y=105) tkinter.Button(self.root,text = 'GO!',command = self.print).place(y=130) def print(self): print(self.variables) def label_var(self): self.variables = dict.fromkeys(constants['names'],dict.fromkeys(variables_list,[])) # создаю словарь, в который буду добавлять значения for i in range(len(constants['names'])): x = 50+60*i #отступ от края tkinter.Label(text=constants['names'][i]).place(x=x,y=0) # пишу имена столбцов ## вот тут я лажаю :-( self.var = Combobox(values=tuple(constants['color'].keys()),width = 5) self.var.place(x=x,y=20) #выпадающий список self.variables[constants['names'][i]]['list'].append(self.var) #от этой строки ожидалось, что в словарь 'variables' в список ['list'] по ключу constants['names'][i] будет добавлен объект <tkinter.ttk.Combobox object .!combobox> #в дальнейшем, после выбора нужного значения (ввода текста или установки галочки) предполагалось записать это значение в другой словарь или просто перезаписать его на string. self.var = tkinter.Entry(width = 5) self.var.place(x=x,y=40) #ввод вручную self.variables[constants['names'][i]]['entry'].append(self.var) self.var = Checkbutton(width = 5) self.var.place(x=x,y=60) # отметка self.variables[constants['names'][i]]['check'].append(self.var) print(self.variables) # нужно для проверки. Ожидался словарь 2х3х1, но вывод удручающ. def label_get(self): print('Получение переменных') self.variables_cur = dict.fromkeys(variables_list,[]) for i in range(len(constants['names'])): for j in range(len(variables_list)): print('ключ словаря переменной ',list(self.variables_cur.keys())[j]) print('тип переменной ',type(self.variables[str(list(self.variables.keys())[j])][i])) print('значение переменной ',self.variables[str(list(self.variables.keys())[j])][i]) #self.variables_cur[str(list(self.variables_cur.keys())[j])].append(self.variables[str(list(self.variables.keys())[j])][i].get()) #self.variables_cur[str(list(self.variables_cur.keys())[j])][i] = self.variables[str(list(self.variables.keys())[j])][i].get() print('тип переменной ',type(self.variables_cur[str(list(self.variables_cur.keys())[j])][i])) print('значение переменной ',self.variables_cur[str(list(self.variables_cur.keys())[j])][i]) def run(self): self.label_const() self.label_var() self.root.mainloop() window = MainWindow() window.run()