как сделать так, чтобы в сортировку не входили слова меньше чем из 3-х букв
vvid = bool(int(input("1 якщо сортувати , 2 якщо рахувати: ")))
text=str(input("Enter text: "))
if (vvid == 1):
data = sorted(list(set(text.split())))
print(data);
elif (vvid == 2):
words = sorted(list(set(text.split())))
data = dict()
for letter in text:
data[letter] = data.get(letter, 0) + 1
print(data)
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
например так:
слова из менее чем 3х букв останутся неотсортированными, т.е. на своих первоначальных местах:
words = list(set(text.split()))
# сформировать список слов, удовлетворяющий критериям
tmp = sorted([word for word in words if len(word) >= 3])
# выполнить замену слов, удовлетворяющих критериям
i_tmp = 0
for i in range(len(words)):
if len(words[i]) >= 3:
words[i] = tmp[i_tmp]
i_tmp += 1
слова должны быть отсортированными по алфаывиту, но слова меньше трёх букв не должны быть в финальном списке
ну тогда надо сделать всего лишь так:
words = sorted([word for word in list(set(text.split())) if len(word) >= 3])