Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Задачка на питоне ноутпад

30.07.22 19:52
Re: Задачка на питоне ноутпад
 
Бесконечный цикл завсегдатай
в ответ VornerX 30.07.22 01:30, Последний раз изменено 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 гипотетически останется. На практике, для простых задач, этого хватает.

Я надеюсь это ты так шутишь. Доверяться слухам и полагаться на то что сеты вроде бы остаются упорядоченными.


Использовать дикты для дедуплицирования это тоже маразм. Хотя работать конечно будет.


В общем, главное такой код не коммитить, а то получится как здесь:


 

Перейти на