无法正确理解。我想检查列表中的一组值。我不应该因为值不存在而陷入条件if。在
以下列表包含: ['pm_pmdo','pm_pmco','shv','dsv','pmv']
检查以下各项:she、dse、pme
里面找到一个?在
class newfunc(object):
def testfunction(self):
self.DSE = 'dse'
self.PME = 'pme'
self.SHE = 'she'
self.users_roles = ['pm_pmdo', 'pm_pmco', 'shv', 'dsv', 'pmv']
print 'Following list contains:'
print self.users_roles
print 'Checking for the following:'
print self.SHE
print self.DSE
print self.PME
if (self.DSE or self.PME or self.SHE for s in self.users_roles):
#if (self.DSE or self.PME or self.SHE) in self.users_roles:
print "inside found one"
else:
print "outside none found"
if __name__ == '__main__':
runtime = newfunc()
runtime.testfunction()
如果顺序无关紧要,^{} 是快速成员资格测试的好容器:
使用
any
,如果我们找到匹配项,则会短路返回True,否则计算结果为False:代码的计算结果始终是
^{pr2}$True
,因为if self.DSE
基本上是在检查if bool(self.DSE)
,对于任何非空字符串,self.PME
和self.SHE
的值都是一样的。在您还可以将
self.users_roles
设为一个集合并使用set.intersection
:相关问题 更多 >
编程相关推荐