как сделать так, чтобы в сортировку не входили слова меньше чем из 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])
→ Ссылка