Я использую переменную для именования указанного c словаря и использую функцию eval () для этого. Пользовательский ввод из tkinter.
x6x6 = {"2":r"arrays\2x1_6x6_2up.txt", "4":r"arrays\2x2_6x6_4up.txt", "8":"arrays\2x4_6x6_8up.txt"}
mydict = "x%sx%s" % (numX.get(), numY.get())
numPnls = pnls.get()
Если я использую переменную numPnls, я получаю TypeError: строковые индексы должны быть целыми числами:
print(eval(mydict[numPnls]))
Если я пытаюсь также оценить его, я get IndexError: строковый индекс вне диапазона:
print(eval(mydict[eval(numPnls)]))
Это приводит к ожидаемым результатам:
print(x6x6[numPnls])
и печатает все:
print(eval(mydict))