programing

테스트할 문자열 목록을 사용하여 str.traw.

prostudy 2022. 3. 20. 12:56
반응형

테스트할 문자열 목록을 사용하여 str.traw.

나는 너무 많은 if 문장과 비교를 피하고 단순히 목록을 사용하려고 노력하지만, 그것을 어떻게 사용하는지는 확실하지 않다.str.startswith:

if link.lower().startswith("js/") or link.lower().startswith("catalog/") or link.lower().startswith("script/") or link.lower().startswith("scripts/") or link.lower().startswith("katalog/"):
    # then "do something"

내가 원하는 것은 다음과 같다.

if link.lower().startswith() in ["js","catalog","script","scripts","katalog"]:
    # then "do something"

어떤 도움이라도 감사할 것이다.

str.startswith테스트할 문자열의 튜플을 제공할 수 있는 역량:

if link.lower().startswith(("js", "catalog", "script", "katalog")):

문서에서:

str.startswith(prefix[, start[, end]])

반품True문자열은 다음에서 시작되면prefix, 그렇지 않으면 반환False.는 또한 찾을 접두사의 튜플이 될 수 있다.

다음은 시연:

>>> "abcde".startswith(("xyz", "abc"))
True
>>> prefixes = ["xyz", "abc"]
>>> "abcde".startswith(tuple(prefixes)) # You must use a tuple though
True
>>>

다음과 같이 를 사용할 수도 있다.

if any(map(l.startswith, x)):
    pass # Do something

또는 제너레이터 식을 사용하여 다음을 수행하십시오.

if any(l.startswith(s) for s in x)
    pass # Do something

참조URL: https://stackoverflow.com/questions/20461847/str-startswith-with-a-list-of-strings-to-test-for

반응형