Форум сайта python.su
Здравствуйте. Подскажите пожалуйста можно как-нибудь “упростить” условие?
if “1” in a or “2” in “a” or “3” in a or “4” in a or “5” in a or “6” in a or “7” in a…:
pass
else:
pass
Офлайн
for x in map(str, range(1,8)):
if x in a: pass
else: pass
Отредактировано (Сен. 12, 2011 06:31:46)
Офлайн
any( map(lambda x:str(x) in a, xrange(1,8)) )
Отредактировано (Сен. 12, 2011 06:56:58)
Офлайн
Тогда уж лучше
any(str(x) in a for x in xrange(1, 8)).
Хотя способов много.
Офлайн
>>> s = 'abcd1defg2hijk'
>>> set(s) & set("1234567890")
{'1', '2'}
>>> set(s) & set("34567890")
set()
>>>
Офлайн
С множествами напрашивается само собой как наиболее естественное, но еще один оптимизированный вариант:
if any( c in a for c in '0123456789'):
pass
if any('0'<=c<='9' for c in a):
pass
Отредактировано (Сен. 14, 2011 03:57:31)
Офлайн
Ребят, большое спасибо! )
Офлайн