For循环使用if语句和包含函数的字典

时间:2017-05-19 14:20:21

标签: python-3.x dictionary for-loop

我有这段代码:

dict = {"fun1":function1(),"fun2":function2()}
data1 = "fun1"
data2 = "fun3"
data3 = "fun1"
for data in dict:
 if data1 == data:
  dict[data]
 if data2 == data:
  dict[data] 
 if data3 == data:
  dict[data]

你可以解释为什么function1只运行一次而不是两次,因为数据与data1和data3都匹配?

1 个答案:

答案 0 :(得分:0)

实际上,您的代码一次执行函数1和2,因为您在dictionnary中调用它们。要初始化函数词典,

def function1():
   # code to execute

def function2():
    # code to execute

dict = {"fun1":function1,"fun2":function2}

现在您的函数的字典已正确初始化。如果你想用dictionnary调用一个函数,你必须使用函数dict.get(key),其中key是你想要使用的函数的键名。

示例:

data1 = "fun1"
data2 = "fun3"
data3 = "fun1"
for data in dict.keys():
   if data1 == data:
      dict.get(data)()
   if data2 == data:
      dict.get(data)() 
   if data3 == data:
      dict.get(data)()