2013-06-13 229 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]) 
相关问题