Поиск Python из списка на основе количества символов, совпадающих в элементе и печати

#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']
  

Предполагается, что это должно быть нечувствительным к заглавным буквам.