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

    −98

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try:
       while True:
           prices.remove(u"")
       except ValueError:
           pass

    Удаление пустых строк из списка.

    Запостил: FlySnake, 24 Июля 2013

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

    • prices = filter(None, prices)

      Если в списке только строки, конечно.
      Хотя что забавно, примерно так в Питоне все циклы работают.
      Ответить
    • > u""

      О, да, эту строчку точно надо кодировать в юникод.

      Отступы подозрительные, даже учитывая баг уютненького.
      Ответить
      • Вот за это и не люблю питон. Любой баг с форматированием превращает текст в нечитаемый треш. И если в сишке можно выправить каким-нибудь астайлом, то тут только головой и руками...
        Ответить
        • > Любой баг с форматированием
          Это проблема фитона или говнодвижков?
          Ответить
          • Это совместная проблема. Виноват как питон, так и говнодвижки.
            Ответить
            • >Проблема
              Я бы не сказал, что в фитоне нет проблем, но отступы к ним явно не относятся.
              Ответить
        • На практике слухи о проблемах с отступами в питоне выглядят сильно приувеличенными. А вот в сишке холивары где ставить скобки и каков отступ порядком утомили.
          Ответить
      • Да это я криво скопипастил и криво отредактировал в кривом редакторе говнокода, а исправить не даёт
        Ответить
      • Кстати, в тройке u'' != b''.
        Ответить
        • Т.е. этот код не удалит пустые неюникодные строки?
          Ответить
          • В тройке - нет. https://ideone.com/Y4eg3S В двойке - да https://ideone.com/pggWU4, но сравнение юникода с байтами работает не всегда (ascii only - а вы как хотели?) https://ideone.com/Sc9aW0.

            Вся проблема с юникодом в двойке в том, что она поощряла писать ascii only код (в первую очередь, это делают макаки с латинским алфавитом и прыщебляди), который резко ломался, когда в нем попадался неюникодный символ. Ну и в самом интерпретаторе поддержка неполная, например, __file__ байтовый.
            Ответить
    • Лол, четвёртый ответ: http://stackoverflow.com/questions/3845423/remove-empty-strings-from-a-list-of-strings
      Ответить
    • Таки не пойму - а зачем тут цикл? Чтобы наверняка?
      Ответить
      • Если там несколько пустых строк и нужно удалить все
        Ответить
        • Ах, так он еще и первый элемент удаляет. А нафига он такой нужен, этот метод?
          Ответить

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