str.startswith with a list of strings to test for

I'm trying to avoid using so many if statements and comparisons and simply use a list, but not sure how to use it with 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"

What I would like it to be is:

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

Any help would be appreciated.

str.startswith allows you to supply a tuple of strings to test for:

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

From the docs:

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

Return True if string starts with the prefix, otherwise return False. prefix can also be a tuple of prefixes to look for.

Below is a demonstration:

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


Back to homepage or read more recommendations: