2013-08-12 4 views
0

Я пытаюсь что-то сделать в коде, это не работает, и я даже не уверен, что делать с Google. Фактический случай находится в python, используя tkinter, но вот простой пример, который сделает точку.Что бы назвали эту концепцию?

Я хочу создать кучу переменных, так что я сделал список кортежей:

vars = [('var1', 'value1'), ('var2', 'value2')]

Затем я хочу использовать синтаксис вроде этого:

for item in vars: 
    item[0] = item[1] 

Это сделает item[0] равным 'value1'. что я хочу сделать, это сделать var1 равным 'value1'.

Я надеюсь, что это ясно, что я пытаюсь сделать. И я чувствую, что это даже тривиально, как только я получу намек в правильном направлении.

Это в питоне, но я думаю, что концепция более универсальна.

Благодаря

+4

Вы хотите, чтобы вы динамически задавали локальные переменные, названные в вашем списке 'vars'? Как правило, вы этого не делаете. Придерживайтесь словаря для этих имен. –

+0

«Динамически названные переменные» - это, вероятно, имя, которое вы ищете, но это почти всегда плохая идея. – geoffspear

ответ

4

Вы можете использовать словарь для этой цели:

d = dict(vars) 

Тогда вы можете получить доступ к var1 делая d['var1'], который даст вам value1.

+2

Если у вас есть список пар, которые вы хотите превратить в dict, и вы не требуете дополнительной работы со значениями, 'd = dict (vars)' будет делать именно это. Умения Дикта также хороши, если вы хотите применить простое преобразование, например. 'd = {ключ: 2 * значение для ключа, значение в vars}' – tehasdf

+1

Удивительно, что работает красиво. Поэтому мне нужны словари, а не кортежи. Благодарю. – dan08

+1

Не забудьте принять ответ jh314. –