user5455038
user5455038

Reputation:

Python endswith() with multiple string

I have a string:

myStr = "Chicago Blackhawks vs. New York Rangers"

I also have a list:

myList = ["Toronto Maple Leafs", "New York Rangers"]

Using the endswith() method, I want to write an if statement that checks to see if the myString has ends with either of the strings in the myList. I have the basic if statement, but I am confused on what I should put in the parentheses to check this.

if myStr.endswith():
    print("Success")

Upvotes: 65

Views: 50363

Answers (3)

Kasravnd
Kasravnd

Reputation: 107347

endswith() accepts a tuple of suffixes. You can either convert your list to a tuple or just use a tuple in the first place instead of list.

In [1]: sample_str = "Chicago Blackhawks vs. New York Rangers"

In [2]: suffixes = ("Toronto Maple Leafs", "New York Rangers")

In [3]: sample_str.endswith(suffixes)
Out[3]: True

From doc:

str.endswith(suffix[, start[, end]])

Return True if the string ends with the specified suffix, otherwise return False. suffix can also be a tuple of suffixes to look for. With optional start, test beginning at that position. With optional end, stop comparing at that position.

Upvotes: 117

Gargen Hans
Gargen Hans

Reputation: 90

You may do it like this :)

for i in myList:
    if myStr.endswith(i):
        print(myStr + " Ends with : " + i)

Upvotes: 0

gtlambert
gtlambert

Reputation: 11971

You could use the keyword any:

if any(myStr.endswith(s) for s in myList):
    print("Success")

Upvotes: 18

Related Questions