for i in range(1, digit+1):
l.extend(list(itertools.product(iteration, repeat=i)))
return l
print(combo(lst, 3))
Как это можно улучшить до одной строки?
Поверить не могу, что в itertools такого нет, когда в других прогах на СИ такое есть.
"улучшить до одной строки" не всегда = улучшение
это первая часть вопроса, вторая будет про оптимизацию, например, если в функцию подставить 14, то замеры показывают потребление озу 560Мб. Нужно yield прикрутить вероятно или как-то.
Собственно, combinations_with_replacement в цикле по длине строки.
он не дает всех комбинаций тоже
Чего это не даёт?
Что-то в духе for i in range(len(lst)): yield from combinations_with_replacement(lst, i)
range(len(...)) Фуу
Здесь он на удивление уместен.
во-первых ошибка yield, а во вторых, combinations_with_replacement не дает всех комбинаций, как написал выше уже
Ладно, я согласен
Какая такая ошибка? И каких именно комбинаций не даёт?
на выходе должно быть так 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
Блин, ну логично, что код надо в функцию запихать.
Ну, +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% И конечно это не единственный инструмент
а еще из шелла можно запускать браузер хром
Цирк с конями...
Пиздец, у JtR исходники на 33 мегабайта
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).
В итоге для тебя важно только самому ни строчки кода написать? Важно, чтобы кто-то сделал это давным-давно за тебя?
"size": 130542, 130мБ. https://api.github.com/repos/openwall/john
Я вообще не понял в чем проблема
тебе тоже нельзя в разработчики, ты не видешь всей сути
Парень пишет "как на питоне сделать [вещь] в одну строчку" Ему отвечают "напиши в три" Парень говорит "фу говно вот на СИ в одну строчку" и скидывает строчку терминала с вызовом 33 130-мегабайтной приложухи
в модулях itertool и more_itertools не добавили частой функции
Тебе нельзя в чаты заходить, средний IQ чата падает втрое
не передергивай, я не говорил говно. я говорил про оптимизацию и потребление памяти.
Ну не добавили и не добавили. Напиши сам
Почему ты не вызываешь напрямую princeprocessor? Зачем тащишь 130 мегабайт кода JtR? Ты что, не хочешь быть оптимальнее?
откуда ты знаешь что она часто используется?
Не неси пургу, пожалуйста, уже и так много принёс.
Мне вот ни разу не приходилось
я привел инструмент, который просили привести в качестве примера.
Тебя не это просили.
Это не инструмент, лол. Это написанное целой командой приложение. Сюрприз — принцепроцессора нет в libc. Хуй знает почему ты решил сравнить стандартную библиотеку и стороннее приложение.
Что не так?
Обсуждают сегодня