2015-04-26 72 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-字符串與同名的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

對於像OP這樣的初學者來說,'assert'事情似乎令人困惑。否則,完全同意(+1)。 – L3viathan

+0

好點;這個例子我不需要它。 – chepner

+0

這是超級有用。謝謝! –