Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 带有if语句和包含函数的字典的For循环_Python 3.x_Dictionary_For Loop - Fatal编程技术网

Python 3.x 带有if语句和包含函数的字典的For循环

Python 3.x 带有if语句和包含函数的字典的For循环,python-3.x,dictionary,for-loop,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] 你能解释一下为什么函数1只运行一次吗?不是两次,因为数据与data1

我有以下代码:

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]

你能解释一下为什么函数1只运行一次吗?不是两次,因为数据与data1和data3都匹配?

事实上,你的代码只执行函数1和2一次,因为你在字典里调用它们。要初始化函数dictionary

def function1():
   # code to execute

def function2():
    # code to execute

dict = {"fun1":function1,"fun2":function2}
现在,函数的词汇表已正确初始化。如果要使用dictionnary调用函数,必须使用function
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)()