agent_romanof
Мой код:
t = input().split()[::-1]
for i in t:
if [j.lower() for j in t].count(i.lower()) > 1:
t.remove(i)
print(*t[::-1])
Какая-то тупость на тупости тупостью погоняет.
Зачем строку переворачивать?
Зачем на каждом слове проходить по словам, которые пройдены уже и пройдены не по одному разу?
Зачем проходить по списку многократно?
На миллионе слов оно будет миллион раз перебирать этот миллион слов, которые уже перебирало миллион раз до этого.
agent_romanof
Просто не понимаю, почему этот вариант не работает?
Оно не работает, потому что ты посчитал себя слишком умным. Простую задачу решить не можешь.
agent_romanof
На маленьких текстах всё ок
Это случайность.
>>> def f():
... t = input().split()[::-1]
... for i in t:
... if [j.lower() for j in t].count(i.lower()) > 1:
... t.remove(i)
... print(*t[::-1])
...
>>>
>>> f()
one two one two one
one two two
>>>
Ошибка у тебя стандартная для новичков: новички думают, что цикл for фиксирует все элементы перебираемой последовательности, в то время как он, на самом деле, идёт по живой последовательности, которую нельзя менять внутри цикла.
При этом это всё не исключает всей той “умности” в самом алгоритме, где у тебя на миллион слов миллион повторных переборов этих слов.
agent_romanof
Если что, это из задания не степике.
Надо всего лишь сделать цикл внутри цикла. Но ты решил сумничать и сэкономить буквы, в итоге сидишь тут и спрашиваешь про эту простейшую задачу.
“А я возьму… миллион слов переверну, а потом, ах!.. поищу в этом перевёрнутом миллионе слов одно и то же слово миллион раз!”.
Ты перед каждым переворачиванием миллиона слов должен думать “а нахера я это делаю?! у меня с головой-то всё в порядке?!”.
Тебе какой-нибудь датчик температуры там или дистанции будет передавать бесконечно значения, как ты их перевернёшь? они бесконечные. Где-то это просто к задержкам приведёт, а где-то это вообще будет сделать невозможно. Или ты думаешь, что эти слова тупые изучают в алгоритмах, чтобы лингвистами все были потом и со словарями сидели? Это на примере слов просто сам принцип изучают, как с этим всем обращаться. Потом эти слова становятся какими-то числами от каких-то датчиков, какими-то цифрами от каких-то бухгалтеров, какими-то дезоксирибонуклеиновыми кислотами от каких-то ботаников и прочей шушеры.