Login
Задачка на питоне ноутпад
1617 просмотров
Перейти к просмотру всей ветки
in Antwort VornerX 30.07.22 01:30, Zuletzt geändert 30.07.22 21:13 (Бесконечный цикл)
так не легче?
with open('/home/me/some_names.txt') as f: names = f.read().splitlines() for i, group in enumerate([ names[names.index(n):names.index(n) + 5] for n in names ]): with open(f'names_group_{i}.txt', 'w') as fw: fw.writelines(' '.join(group))
Ты надеюсь понимаешь какова сложность этого
names[names.index(n):names.index(n) + 5] for n in names
В цикле по элементам списка, получать элемент, и искать его же индекс (что долго, это линейно). Глупее алгоритма не придумаешь.
Сеты заявлены как неупорядоченные, но в переписке core developers можно почитать, что фактическая имплементация такова, что при отсутствии дальнейших манипуляций с сетом, если им оборачивали лист, то ordering гипотетически останется. На практике, для простых задач, этого хватает.
Я надеюсь это ты так шутишь. Доверяться слухам и полагаться на то что сеты вроде бы остаются упорядоченными.
Использовать дикты для дедуплицирования это тоже маразм. Хотя работать конечно будет.
В общем, главное такой код не коммитить, а то получится как здесь: