1. Python / Говнокод #6267

    −369

    1. 1
    n=' '.join((n[::-1][n[::-1].find('_')+1:])[::-1].lower().replace('_',' ').split()).split()

    Нашел у себя в коде. Что делает уже не осилил вспомнить.

    Запостил: spaceoflabview, 07 Апреля 2011

    Комментарии (10) RSS

    • Берет подстроку до последнего символа подчеркивания, приводит к нижнему регистру, потом заменяет подчеркивания на пробелы, делит, склеивает одиночными пробелами и снова делит.

      Если писать несколько более нормально
      n = [ part.lower().strip() for part in (n.split('_')[:-1]) ]
      Ответить
      • >>> n = '1 2 3 4_5'; n=' '.join((n[::-1][n[::-1].find('_')+1:])[::-1].lower().replace('_',' ').split()).split(); print n
        ['1', '2', '3', '4']
        >>> n = '1 2 3 4_5'; n = [ part.lower().strip() for part in (n.split('_')[:-1]) ]; print n
        ['1 2 3 4']
        Ответить
        • Хм, разбивка сразу по двум разделителям? Не подумал.
          Тогда, может
          n.rpartition('_')[0].lower().replace('_',' ').split()
          Ответить
          • Я вобщем-то не совсем говнорук :) Есть подозрения, что не всё так просто. Этот кусок кода имя файла обрабатывал, а оно было какое-то хитрое. К сожалению уже не помню подробностей :(
            Ответить
            • Ну так-то ваше
              (n[::-1][n[::-1].find('_')+1:])[::-1]
              эквивалентно вызову n.rpartition('_')[0].
              Единственное, что я не понимаю - зачем потребовалось делать лишний ' '.join(...).split() ?
              Ответить
              • Я тоже не понимаю :) Года два назад было. Каментов само собой нет, всё в лучших традициях :) За rpartition спасибо.
                Ответить
                • ('_')[:-1][::-1] - стока смайлов в одной строке... весело питонщики живут
                  Ответить
                  • Автор Питона - голландец...
                    *затягивается*
                    Ответить
                    • По-моему, Дьявол гадит голландцами.
                      -- Сэр Уильям Бэттен, инспектор Королевского флота, подслушано Сэмюэлом Пеписом, 19 июля 1667 года
                      Ответить
    • WTF is this shit?
      Ответить

    Добавить комментарий