2015-04-26 2 views
-2

Я хочу использовать переменную для вызова глобального списка с тем же именем. Так, например:Использовать переменную для вызова глобального списка в python?

x = [1,2,3,4] 
y = [2,3,4,5] 

def function(i): 
    return i 

function(x) 
    expected output -> [1,2,3,4] 
+3

передать x или y функции? –

+0

'return eval (i)'? –

+0

Возможный дубликат [Как я могу использовать строку с тем же именем объекта в Python для доступа к самому объекту?] (Http://stackoverflow.com/questions/9396706/how-can-i-use-a- string-with-the-same-name-of-an-object-in-python-to-access-the-o) –

ответ

3

Я предполагаю, что вы имеете в виду, что

>>> x = [1,2,3,4] 
>>> x == function('x') 
True 

где проходит строку 'x' функции возвращает список, назначенный x.

Вы не хотите писать код, который зависит от имен переменных; вместо этого сохраните словарь, который отображает строки в ваши списки.

>>> d = dict(x=[1, 2, 3, 4], y=[2, 3, 4, 5]) 
>>> d['x'] 
[1, 2, 3, 4] 
+0

Вещь 'assert' путается с новичком вроде OP. В противном случае, полностью согласитесь (+1). – L3viathan

+0

Хорошая точка; Мне это не нужно для примера. – chepner

+0

Это было очень полезно. Спасибо! –