- 1
python -c 'import sys; print("\n".join(map(" ".join, zip(*map(str.split, sys.stdin.readlines())))))'
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−105
python -c 'import sys; print("\n".join(map(" ".join, zip(*map(str.split, sys.stdin.readlines())))))'
Just for fun. Транспонирование таблицы.
Само собой, гк в применении питона в не совсем подходящей для него нише.
antibot-01 13.04.2013 05:24 # 0
Dummy00001 13.04.2013 13:28 # 0
э???
список "подходящих" ниш в студию.
myaut 13.04.2013 13:56 # +4
myaut@panther:~/Temp> echo $'1 2\n3 4' | python numpy_t.py
1 3
2 4
guest 13.04.2013 16:49 # 0
guest 13.04.2013 19:15 # 0
guest 13.04.2013 16:49 # 0
Dummy00001 13.04.2013 16:53 # 0
что на шелле что на авк что на седе что на перле это как бы норма вещей. и кто-то знает пути как тоже самое на питоне делать.
говна не вижу.
guest 13.04.2013 17:11 # 0
Ну можно, конечно, в $'..' обернуть . но тогда придется удваивать неэкранирующие слэши.
Dummy00001 13.04.2013 17:16 # 0
почти в любой (скриптовом) языке есть какие-то конструкцие которые проще писать скриптом, чем пытаться в одну строку запихнуть.
guest 13.04.2013 17:52 # 0
Dummy00001 13.04.2013 18:08 # 0
прощаю.
примеры того что сложно делать уан-лайнерами, внезависимости от языка, потому что строка становится слишком длиной: (вложеные) циклы, временные переменные, состояние/фаза обработки ввода, дополнителные действия по окончанию работы.
код этого ГК например на других языках в одну строчку сделать будет сложно, потому что нативной функции транспонирования ни в одном из них нету. а на питоне - вот пожалуйте.
guest 13.04.2013 18:12 # 0
Выше уже намекал, что относительно других языков у питона дополнительное ограничение раскладки, покажите где неправ.
> ни в одном из них нету
Таки? [code]ruby -e 'puts STDIN.each.map(&:split).transpose.map{|l | l.join" "}'[/coed]
Dummy00001 13.04.2013 18:15 # 0
ок. в одном есть. и именно в том одном, который нигде никогда не предустановлен.
guest 13.04.2013 19:12 # 0
Левый аргумент, если говорить о "предустановке", то можно хоть sshfs примонтировать, хоть awk-скрипт достать из заначки, а в тяжелом случае - собрать transpose c sourceforge.
Как вам луж^Wой, в смысле понравилось ли "отыгрывать" роль паладина питона? ^_^
Dummy00001 13.04.2013 19:35 # 0
(и меня просто порадовало что и в питоне тоже возможны достойные однострочники. не смотря на то что сам питон терпеть не могу.)
и поверь мне, предустановлено/не предустановлено IRL играет громадную роль. я не могу послать строчку/скрипт руби или питона, потому что знаю что на *NIX продакшн системах это просто не стоит. потому что не предустановлено. потому что не поддерживаемое 3rd party. в то время как perl/awk/sed/sh 100% гарантии предустановлены и поддерживаются. (на маках питон к слову предустановлен.)
roman-kashitsyn 13.04.2013 20:22 # +2
Dummy00001 13.04.2013 21:10 # 0
guest 13.04.2013 21:07 # +1
Не сильно длинее будет тот же awk накидать.
Для одноразового вызова можно и socat прокинуть на машину с любимым средством.
// А против однострочников ничего не имею.
Dummy00001 13.04.2013 21:17 # 0
зачем плясять?????
я только сейчас уловил что у тебя похоже какая-то философская/религиозная проблема с переходом от однострочника к полноценному скрипту.
нет проблем.
например если есть комманда `python -c 'бля-бля-бля'`, нажимаешь ^A (или Хоум), пишешь `echo > mycoolscript.py` и нажимаешь ввод. и вот, вместо однострочника у вас уже почти есть скрипт.
guest 13.04.2013 21:29 # 0
Dummy00001 13.04.2013 22:08 # 0