Задачка на питоне ноутпад
Пфф, а что тут lazy? Тебе вообще смысл этого термина известен? ) Или это потому что ты генератор заюзал? )))
names = (line.strip() for line in open("input.txt")) # 1: Ничего не делает и ждет пока результат понадобится groups = windowed(names, 5) # 2: Тоже ничего не делает никакой обработки with open("output.txt", "w") as f: for п in groups: f.write(",".join(п) + "\n") # Только здесь начинает работать цикл 2, который крутит цикл 1 (пошагово)
Ничего не делается до последнего цикла. Это простейший дата пайплайн.
Если ты таких вещей не знаешь, вперед на курсы и изучай генераторные выражения и вообще генераторы и итераторы. Вот тебе ссылка навскидку, а дальше сам https://towardsdatascience.com/what-is-lazy-evaluation-in-...
Я просто не понимаю как ты можешь кого-то еще учить. Это типа как в поговорке: Кто не может работать идет преподавать, а кто не может преподавать идет в политику. И эти люди учат нас не ковырять в носу.
Придется макнуть тебя еще раз, но уже глубже. Это ведь твой код, правильно?
Ты умудрился написать алгоритм сложностью N^2 вместо одного прохода. А еще зачем-то два раза один и тот же дорогой метод вызвать, хотя его надо 0 раз вызывать поскольку индекс тебе сразу дается. Ты думал, что повторный вызов другой индекс найдет? Я сразу вспоминаю определение: "Безумие: повторять одно и то же действие и ожидать других результатов"
Далее. Это же ты родил эту фразу, правильно?
Сеты заявлены как неупорядоченные, но в переписке core developers можно почитать, что фактическая имплементация такова, что при отсутствии дальнейших манипуляций с сетом, если им оборачивали лист, то ordering гипотетически останется. На практике, для простых задач, этого хватает.
Ну тогда не поленись и проверь сам какой будет порядок:
Так что это уже не глупость (как выше), а тянет на криминальную статью (в программировании). Перевести стрелки на core developers вряд ли удастся - бить за такое будут тебя сильно если ты это "применишь на практике".
Так что перестань скакать, гнуть пальцы, быковать и переводить стрелки на celery или core developers. А лучше наморщи мозг и начни думать.
Как тогда сделать, если написать надо много, а задача на подзадачи не разбита? Ну или если разбить, то она в общем и целом выполняться не будет - т.е. промежуточные коммиты не добавят фичу, а лишь подготовят "платцдарм" для неё.
Т.е. любые неполные коммиты, эксперименты и прочее - делать свою ветку, и потом мёржить? А в гланую коммитить только полностью готовые фичи и полностью исправленные баги?
А в главную коммитить только полностью готовые фичи и полностью исправленные баги
Вопрос только в том что есть главная ветка.
Пример: вот коммиты (типа по номерам)
1-2-3-4-5
5 - плохой. Я беру 4 (команда "Get This Version" в клиенте Azure DevOps для Студии), оставаясь в той же ветке, правлю код и делаю коммит номер 6, который теперь является текущей последней версией. Так можно, без создания параллельных веток и мёрджей?
Так можно, без создания параллельных веток и мёрджей?
Смотря что делает команда "get this version".
Что говорит git status до и после выполнения этой команды?
Так можно
Если один в репо, то делаешь как удобно. Но варианты есть
https://www.cloudbees.com/blog/git-revert-commit
Смотря что делает команда "get this version".
Что говорит git status до и после выполнения этой команды?
А я её ещё не выполнял. Я только последнюю версию загружал и коммитил в одну и ту же ветку. Один раз не то закоммитил. Ну я просто поправил код и закоммитил снова - написал, что это за исправление.
Однажды я захотел поэксперементировать на проекте, но при этом: 1) я не знал что выйдет и захочу ли это комитить в основной проект 2) эксперименты жестокие (с кровью) с кучей ковнокода а потому не хотел все это выставлять на показ в публичной ветке. 3) но хотел все-таки историю (по привычке, да и опасно не сохранять историю)
В общем я решил создать отдельный (личный) репо из последнего комита проекта, и далее развивать уже этот новый форк как отдельный проект. Но логически это была ветка, поскольку я не собирался что-то отдельное делать - чисто для экспериментов. Через пару месяцев я подумал, что жалко выкидывать, а потому подчистил и замержил обратно в основной проект (а этот форк удалил). Ну понятно что пришлось конфликты
разруливать, а потом еще вручную чистить после мержа (он не все делает, остается мусор), но на удивление все сработало. Это конечно исключение, я так один раз делал, но просто как пример, как можно экспериметны делать.
не хотел все это выставлять на показ в публичной ветке
Не понятен смысл отдельного репо. Можно же было просто не "передавать" в публик.
Не понятен смысл отдельного репо. Можно же было просто не "передавать" в публик.
Ну да. Но это надо push правильно использовать, а я наверное (по незнанию) опасался, что что-нибудь закину наверх из экспериментов, поэтому выбрал радикальную изоляцию и спал спокойно. В целом наверное неправильный подход, но работает.
А вы пушите лишь то, что в тикете указано? Ну скажем сделал тикет, но заметил неопрятный кусок кода, или опечатку, или ещё что по-мелочи. Правите заодно, заводите новый тикет по помарке, или просто оставляете как есть?
Так-то случайно можно и Ctrl+K, D нажать (автоформатирование - у меня вообще привычка часто эту комбинацию дрюкать) - сразу полно изменений может в трекер изменений залететь.
Ну скажем сделал тикет, но заметил неопрятный кусок кода, или опечатку, или ещё что по-мелочи.
Кладешь новый бранч (FixBugs), и правишь там.
Так-то случайно можно и Ctrl+K, D нажать (автоформатирование - у меня вообще привычка часто эту комбинацию дрюкать) - сразу полно изменений может в трекер изменений залететь.
У команды должен быть айнхатлихер стиль написания кода.
Автоформатирование тогда (если оно противоречит стилю) - является ошибкой.
Лечится легко:
git stash
git stash drop
Лечится легко:git stash
git stash drop
Так и до git reset --hard недалеко. Не проще restore сделать?
Разве нельзя настроить стили так, чтобы они автоформатировали код при отправке-загрузке? Ну а анализатор изменений в репе анализировал бы код на изменения только после автоформата под ваш выработанный стиль?
Мне непонятно, почему "сколько пробелов в отступе" это до сих пор какая-то проблема и тема для обсуждения.
чтобы они автоформатировали код при отправке-загрузке?
Странный триггер для авто форматирования. Rider или Resharper нормально справляются с этим, но конечно не автоматом.
"сколько пробелов в отступе" это до сих пор какая-то проблема
Было, есть и будет. Где то удобнее/привычнее 2, где то 4
Про автоформатирование я имел ввиду, что код Пети, отформатированный как ему надо, попадая к Васе, автоматом форматируется под Васю. А в репе - под общие требования для репы. Т.е. миддл Петя не орёт на джуна Васю, а тим лид Костя - на них обоих из-за того, что их вкусы по форматированию различаются, т.к. каждый автоматом получает то, что хочет.
Профили форматирования - это рокет сайенс?
что код Пети, отформатированный как ему надо, попадая к Васе, автоматом форматируется под Васю. А в репе - под общие требования для репы
Так не работает.
Команда должна следовать code style guide. Перечисленные проги в этом хорошо помогают.