#python #search
#python #Поиск
Вопрос:
У меня есть список городов, в которых есть множество названий мест. Я хочу выполнить поиск из списка на основе количества символов, которые совпадают в элементе, и распечатать все элементы, которые имеют одинаковое количество этих символов.
character_search = str(input("What character you are looking for: Choose from a-z? "))
number_of_characters = int(input("How many of those characters you are looking for in the name of the city? "))
#У меня есть эти два входа. Один символ от а доя и сколько из них вы хотите найти по названию города.
# Как я могу выполнить поиск из списка на основе этих двух входных данных и распечатать все совпадения?
Например: если я выбираю символ «o» и номер три (3), он должен найти город под названием «porvoo», потому что в нем есть три буквы «o», и распечатать его. Также, если я выберу символ «a» и номер три (3), он должен найти «tampabay» и «Aaria» и распечатать оба.
cities = ["Porvoo", "Tampabay", "Aaria"]
Как мне это сделать?
Пожалуйста, помогите.
Комментарии:
1. Пожалуйста, обновите вопрос, чтобы показать, что вы пробовали / исследовали до сих пор.
Ответ №1:
Используйте count
и цикл для вывода всех элементов, содержащих запрошенное количество символов.
count
вернет количество раз, когда предоставленный ввод встречается в строке. Нам просто нужно проверить, что он соответствует вводу количества символов.
result = [x for x in cities if x.lower().count(character_search.lower()) == number_of_characters]
Вывод с a
* 3
['Tampabay', 'Aaria']
Предполагается, что это должно быть нечувствительным к заглавным буквам.