Как получить доступ к словарному значению с переменной для ключа, если оно заключено в eval? - PullRequest
0 голосов
/ 10 апреля 2020

Я использую переменную для именования указанного 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))

1 Ответ

0 голосов
/ 11 апреля 2020

Оказывается, у меня неправильный синтаксис:

print(eval(mydict)[numPnls])

, используя метод 2D2-словаря user2357112, хотя, намного проще:

print(outerdict[mydict][numPnls])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...