2016-02-19 1 views
-1

Вот что я в настоящее время, который не работает:Использования «если не» с несколькими аргументов струнного Python

if "Forwarder" not in shp_name or "T_" not in shp_name or "Grad" not in shp_name: 

Я также попытался:

if ("Forwarder", "T_", "Grad") not in shp_name: 

Образцов ввода будет «DS_Forwarder_1» или «DS_Harvester_1». Сценарий переходит непосредственно к else, так как он не может идентифицировать какие-либо из вышеуказанных подстрок в первичной строке.

+3

Не работает как? Что вы хотите и что происходит? – Holloway

+0

Это не идентификационные строки, которые содержат 3 подстроки, которые я упомянул ... и примером может быть «DS_Forwarder_1» – Pewpewpwnj00

+0

Итак, вы хотите, чтобы она была «Истиной», если какая-либо из строк является подстрокой 'shp_name'? – Holloway

ответ

5

Попробуйте использовать any встроенный.

if any(s in shp_name for s in ("Forwarder", "T_", "Grad")): 
    ... 

Это будет справедливо, если какой-либо из заданных строк присутствуют в shp_name. Вы можете использовать if not any(..., если хотите False, если присутствует одна из строк.

Смежные вопросы