170 похожих чатов

Изобрел Import itertools lst=["а","б","в"] def combo(iteration, digit): l = []

for i in range(1, digit+1):
l.extend(list(itertools.product(iteration, repeat=i)))
return l

print(combo(lst, 3))

Как это можно улучшить до одной строки?

Поверить не могу, что в itertools такого нет, когда в других прогах на СИ такое есть.

37 ответов

52 просмотра

"улучшить до одной строки" не всегда = улучшение

Валек- Автор вопроса
._.
"улучшить до одной строки" не всегда = улучшение

это первая часть вопроса, вторая будет про оптимизацию, например, если в функцию подставить 14, то замеры показывают потребление озу 560Мб. Нужно yield прикрутить вероятно или как-то.

Собственно, combinations_with_replacement в цикле по длине строки.

Валек- Автор вопроса
evle
Собственно, combinations_with_replacement в цикле ...

он не дает всех комбинаций тоже

Валек
он не дает всех комбинаций тоже

Что-то в духе for i in range(len(lst)): yield from combinations_with_replacement(lst, i)

quantum super position
range(len(...)) Фуу

Здесь он на удивление уместен.

Валек- Автор вопроса
evle
Что-то в духе for i in range(len(lst)): yiel...

во-первых ошибка yield, а во вторых, combinations_with_replacement не дает всех комбинаций, как написал выше уже

Валек
во-первых ошибка yield, а во вторых, combinations_...

Какая такая ошибка? И каких именно комбинаций не даёт?

Валек- Автор вопроса
evle
Какая такая ошибка? И каких именно комбинаций не д...

на выходе должно быть так https://t.me/ru_python_beginners/2732965 у вас [()] [('a',), ('b',), ('c',)] [('a', 'a'), ('a', 'b'), ('a', 'c'), ('b', 'b'), ('b', 'c'), ('c', 'c')] а ошибка SyntaxError: 'yield' outside function

Валек
на выходе должно быть так https://t.me/ru_python_b...

Блин, ну логично, что код надо в функцию запихать.

Валек
на выходе должно быть так https://t.me/ru_python_b...

Ну, +1 накинунть к длине, пропустил. Про важность порядка разговора не было.

Можно плиз развернуть мысль про "в других прогах на СИ такое есть"

Валек- Автор вопроса
Иван Балакин
Можно плиз развернуть мысль про "в других прогах н...

$ cat lst a b c $ john --prince=lst -max-len=3 --stdout a b c aa ba ca ab bb cb ac bc cc aaa baa caa aba bba cba aca bca cca aab bab cab abb bbb cbb acb bcb ccb aac bac cac abc bbc cbc acc bcc ccc 39p 0:00:00:00 100.00% И конечно это не единственный инструмент

Валек
$ cat lst a b c $ john --prince=lst -max-len=3 --...

а еще из шелла можно запускать браузер хром

Валек
$ cat lst a b c $ john --prince=lst -max-len=3 --...

Пиздец, у JtR исходники на 33 мегабайта

Валек
$ cat lst a b c $ john --prince=lst -max-len=3 --...

The --prince mode in JtR is based on Atom's "princeprocessor" (a.k.a "pp") which was thankfully open-sourced (which we payed back by enhancing it and submitting upstream).

Валек
$ cat lst a b c $ john --prince=lst -max-len=3 --...

В итоге для тебя важно только самому ни строчки кода написать? Важно, чтобы кто-то сделал это давным-давно за тебя?

Валек- Автор вопроса
Иван Балакин
Пиздец, у JtR исходники на 33 мегабайта

"size": 130542, 130мБ. https://api.github.com/repos/openwall/john

Валек- Автор вопроса
Иван Балакин
screenshot В итоге для тебя важно только самому ни строчки ко...

тебе тоже нельзя в разработчики, ты не видешь всей сути

quantum super position
Я вообще не понял в чем проблема

Парень пишет "как на питоне сделать [вещь] в одну строчку" Ему отвечают "напиши в три" Парень говорит "фу говно вот на СИ в одну строчку" и скидывает строчку терминала с вызовом 33 130-мегабайтной приложухи

Валек- Автор вопроса
quantum super position
Я вообще не понял в чем проблема

в модулях itertool и more_itertools не добавили частой функции

Валек
тебе тоже нельзя в разработчики, ты не видешь всей...

Тебе нельзя в чаты заходить, средний IQ чата падает втрое

Валек- Автор вопроса
Иван Балакин
Парень пишет "как на питоне сделать [вещь] в одну ...

не передергивай, я не говорил говно. я говорил про оптимизацию и потребление памяти.

Валек
в модулях itertool и more_itertools не добавили ча...

Ну не добавили и не добавили. Напиши сам

Валек
не передергивай, я не говорил говно. я говорил пр...

Почему ты не вызываешь напрямую princeprocessor? Зачем тащишь 130 мегабайт кода JtR? Ты что, не хочешь быть оптимальнее?

Валек
в модулях itertool и more_itertools не добавили ча...

откуда ты знаешь что она часто используется?

Валек
не передергивай, я не говорил говно. я говорил пр...

Не неси пургу, пожалуйста, уже и так много принёс.

Валек- Автор вопроса
Иван Балакин
Почему ты не вызываешь напрямую princeprocessor? З...

я привел инструмент, который просили привести в качестве примера.

Валек
я привел инструмент, который просили привести в ка...

Это не инструмент, лол. Это написанное целой командой приложение. Сюрприз — принцепроцессора нет в libc. Хуй знает почему ты решил сравнить стандартную библиотеку и стороннее приложение.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта