2013-06-13 152 views
-5

我遇到了一個與我的python程序有關的問題。基本上,這裏是我想要做的事:Python在列表中使用變量作爲函數的參數

categories = [cat1 , cat2] 

for x in categories: 

    print x 
    print function(x) 

我希望它做的是打印:

CAT1當CAT1變量用於

(函數的結果作爲參數)

CAT2

(你的想法)

+7

不,我不明白你的想法。你的代碼面臨什麼問題? – kevinamadeus

+1

也許我很笨......你能更具體嗎? – CppLearner

+0

我認爲這裏的主要問題是他想打印變量名稱。 –

回答

1

我在這個設置中,你的代碼工作得很好。你有什麼問題?

>>> cat1 = "CAT1" 
>>> cat2 = "CAT2" 
>>> 
>>> def function(x): 
...  return x[::-1] 
... 
>>> categories = [cat1, cat2] 
>>> 
>>> for x in categories: 
...  print x 
...  print function(x) 
... 
CAT1 
1TAC 
CAT2 
2TAC 

如果你要打印CAT1的名稱,必須使用名字,因爲不存在一個引用和對象之間的一一對應關係開始。

例如

categories = ["cat1", "cat2"] 
for x in categories: 
    print x 
    print function(locals()[x]) 
0

在這裏你去:

#!/usr/bin/python 

def myfunc(myvar): 
    return len(myvar) 

cat1 = "First category" 
cat2 = "Second category" 

categories = [cat1, cat2] 
variable_names = ["cat1", "cat2"] 

for varname, category in zip(variable_names, categories): 
    print varname 
    print myfunc(category) 

輸出:

cat1 
14 
cat2 
15 

使用詞典可能是更好的,如果這真的是你想要的東西:

#!/usr/bin/python 

def myfunc(myvar): 
    return len(myvar) 

categories = {"cat1": "First category", "cat2": "Second category"} 

for category in categories: 
    print category 
    print myfunc(categories[category]) 
相關問題