Python фильтрация слов
Хочу сделать программу которая фильтрует строковый список
Допустим
list = ['арбуз', 'паприка', 'дерево', 'хор', 'дверь', 'ор', 'приз', 'свет']
Мне известно что в слове 6 букв и знаю буквы 'е' и 'в' По итогу программа должна мне выдать 'дерево'(исходя из этого списка слов)
То что у меня есть
list = ['арбуз', 'паприка', 'дерево', 'хор', 'дверь', 'ор', 'приз', 'свет']
#это список для примера, основной список из более 5000 слов
word = input('Введите буквы которые вам известны')
length = int(input('Введите длину слова'))
for line in list:
if len(line) == lenght:
print(line)
Ответы (2 шт):
Автор решения: Сергей Ш
→ Ссылка
word = 'и'
length = 4
lst = ['арбуз', 'паприка', 'дерево', 'хор', 'дверь', 'ор', 'приз', 'свет']
print(*filter(lambda x: len(x) == length and word in x, lst), sep='\n')
Автор решения: Алексей Р
→ Ссылка
Через множества
lst = ['арбуз', 'паприка', 'дерево', 'хор', 'дверь', 'ор', 'приз', 'свет']
chars = set(input('Введите буквы, которые вам известны: ').lower())
length = int(input('Введите длину слова: '))
for word in lst:
if len(word) == length and chars.issubset(word.lower()):
print(word)