我有一个功能列表已保存但未运行。 我需要遍历这个列表,看看我正在寻找的其中一个项目是否存在于列表中。
我该怎么做?
以下是如何存储功能。
self.pysat_fun.set_fun_list(self.pysat_fun.set_file_outpath) # add this function to the pysat list to be run
def set_fun_list(self, fun, replacelast=False):
if replacelast:
self.fun_list[-1] = fun
else:
self.fun_list.append(fun)
这是我的尝试。
for i in range(0, len(self.fun_list)):
if pysat_func.do_norm in self.fun_list:
print("True")
答案 0 :(得分:1)
for i in range(self.leftOff, len(self.fun_list)):
if pysat_func.do_norm == self.fun_list [i]:
print("True")
break
或者,简单地说:
print (pysat_func.do_norm in self.fun_list [self.leftOff : ])
其工作原理如下:
self.fun_list
是您要搜索功能的列表。
self.fun_list [self.leftOff : ]
是该列表的尾部,因为从您的原始代码看来
您只想从索引为self.leftOff
的元素中搜索。
[self.leftOff : ]
被称为切片,背后的空白:表示'直到结束'。
pysat_func.do_norm in aList
是一个布尔表达式,当且仅当True
位于pysat_func.do_norm
aList
所以
pysat_func.do_norm in self.fun_list [self.leftOff : ]
是一个布尔表达式,当且仅当时,它的计算结果为True
pysat_func.do_norm
是我谈到的尾巴
print (anyThing)
会在大括号内打印任何内容,恰好是上面提到的True
(或False
)。
绑定方法在某个列表中的示例以及哪些绑定方法不是:
class A:
def f (self):
print ('f')
def g (self):
print ('g')
a1 = A ()
a2 = A ()
aList = [a1.f, a2.g]
print (
a1.f in aList,
a1.g in aList,
a2.f in aList,
a2.g in aList
)
打印:
True False False True