Змея / Говнокод #6267 Ссылка на оригинал

0

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

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

Запостил: spaceoflabview spaceoflabview, (Updated )

Комментарии (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 года
                    Ответить

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8