Оставить в слове вхождения только первой буквы

Дано предложение.

Задача: Напечатать все слова, предварительно преобразовав каждое из них по следующему правилу: оставить в слове только первые вхождения каждой буквы.

Пробую реализовать:

sentence=[str(i) for i in input().split()]

for i in range(0, len(sentence)):
    items = list(sentence[i])
    for j in range(0, len(items)): #перебираем буквы слова
        if items.count(items[j])>1: #если этой буквы больше чем 1
            index=items.find(items[j])  #запоминаем индекс
            first_letter=items[index]   #запоминаем эту букву
            for k in range(0, len(items)-2): #удаляем циклом эти буквы
                if items[k]==items[index]:
                    items.remove(items[k])
                else:
                    continue
        else:
            continue
    items.insert(index,first_letter) #вставляем первое вхождение на его место
    sentence[i] = ''.join(items) #заполняем масив предложения

print(*sentence)    

Выбивает ошибку:

'list' object has no attribute 'find'

Ответы (2 шт):

Автор решения: Danis
def f(string):
    words = string.split()
    new_words = []
    for i in range(len(words)):
        new_word = ''
        for j in range(len(words[i])):
            if words[i][j] not in words[i][0:j]:
                new_word += words[i][j]
        new_words.append(new_word)
    return ' '.join(new_words) 
→ Ссылка
Автор решения: n1tr0xs

Python-style:

words = input().split()
new_words = [''.join(sorted(set(word), key=lambda el: word.index(el))) for word in words]
print(new_words)
→ Ссылка