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