не удалось получить это правильно. Я хочу проверить содержимое списка для набора значений. Я не должен падать внутри условного, если потому, что значение не существует.python проверить, существуют ли значения в списке
Следующий список содержит: [ 'pm_pmdo', 'pm_pmco', 'SHV', 'DSV', 'PMV']
Проверка на следующее: она, 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()
Ouch .. Так что-то вроде этого тоже было бы большим нет? если self.PME имеет vailue тогда - если (self.PME) в self.users_roles: Спасибо! –
@DaveJones, если вы не хотите, чтобы если бы значение true для каждой непустой строки возможно, тогда да, это большой нет нет;) Единственный способ, которым это когда-либо было бы False, если бы вы получили пустые строки. Если вы выполняете много проверок, набор будет намного эффективнее, чем любой. Правильный способ написать это будет 'if self.DSE в self.users_roles или self.PME в self.users_roles и т. Д.', Но это становится довольно уродливым, когда у вас есть несколько, чтобы проверить, чтобы любой был просто более кратким способом сделать это. –