Поиск заголовка, который начинается с python?

Поэтому у меня есть список имен

name_list = ["John Smith", "John Wrinkle", "John Wayne", "David John", "David Wrinkle", "David Wayne"] 

Я хочу, чтобы можно было искать, например, John и

 John Smith John Wrinkle John Wayne 

будет отображаться. На данный момент мой код будет отображаться

 John Smith John Wrinkle John Wayne David John 

Что я делаю не так?

Вот мой код

 search = input(str("Search: ")) search = search.lower() matches = [name for name in name_list if search in name] for i in matches: if(search == ""): print("Empty search field") break else: i = i.title() print(i) 

One Solution collect form web for “Поиск заголовка, который начинается с python?”

Измените свои matches :

 matches = [name for name in name_list if name.startswith(search)] 

Вы также можете внести некоторые изменения в свой код:

 # You can do this in one go search = input(str("Search: ")).lower() # Why bother looping if search string wasn't provided. if not search: print("Empty search field") else: # This can be a generator for i in (name for name in name_list if name.startswith(search)): print(i.title()) 
Python - лучший язык программирования в мире.