Search code examples
pythonlistloopsstartswith

How to loop on startswith method


I need to check if the first word typed is in my list or not

name = input("type your name: ")
    
if name.startswith("Tim") or name.startswith("Anna") or name.startswith("Noah") or name.startswith("Justin"):
        print('correct')
else:
     print('false')

I need to write it in better way like :

myList = ['Tim', 'Anna', 'Noah', 'Justin']
name = input("type your name: ") 
if name.startswith(*any name in my list*):
    print('correct')

Solution

  • Using a list comprehension and any keyword :

    myList = ['Tim', 'Anna', 'Noah', 'Justin']
    name = input("type your name: ")
    if any([name.startswith(item) for item in myList]):
        print('correct')
    else:
        print('false')
    

    The if block can quite literally be interpreted as : if name starts with any of the items in myList, then print 'correct'