Как найти слова в списке, которые содержат одну и ту же первую букву python

#python #list

#python #Список

Вопрос:

Напишите функцию common_start(word_list) , которая принимает в качестве параметра список слов. Эта функция должна возвращать новый список, содержащий все слова, которые начинаются с той же буквы, что и хотя бы одно другое слово в списке.

ввод: [‘file’, ‘edit’, ‘view’, ‘insert’, ‘format’]
вывод: [‘file’, ‘format’]

Комментарии:

1. ввод: [‘times’, ‘consolas’, ‘courier’, ‘arial’, ‘cambria’, ‘trebuchet’, ‘wingdings’]) вывод: [‘times’, ‘consolas’, ‘courier’, ‘cambria’, ‘trebuchet’]

Ответ №1:

Однострочное решение, если вы хотите

 def common_start(input_list):
    return [word for word in input_list if sum([w.startswith(word[0]) for w in input_list]) > 1]
  

Ответ №2:

Это должно сработать для вас. В этом случае я игнорирую дублирующиеся слова.

 def common_start(word_list):
    output = set()

    for word in word_list:
        for first_letter in word_list:
            if word == first_letter:
                next
            elif word[0] == first_letter[0]:
                output.add(word)
    return list(output)
  

Ввод: [‘tara’, ‘file’, ‘edit’, ‘view’, ‘insert’, ‘format’,’test’]

Вывод: [‘tara’, ‘file’, ‘format’, ‘test’]