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

    −180

    1. 1
    max(0, 0, *list)

    Костыль, чтобы в случае пустого списка возвращало 0

    Запостил: 3_14dar, 16 Апреля 2015

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

    • sorted(list)[:1] or 0
      Ответить
      • Для максимального значения автоматом выдается max. Можно и max([0] + list), просто в голову сразу не пришло. В тройке они одумались и добавили default.
        Ответить
      • Поиск максимального элемента: O(n), сортировка: O(n log n).
        Ответить
    • reduce(max, list, 0)
      Ответить
      • Забавно, что этот вариант примерно вдвое медленнее того, что в топике.
        Ответить
        • давно как то читал что питоне заметно быстрее бросить/споймать исключение, нежели чем сделать явную проверку значения `if`ом.

          змеепроблемы.
          Ответить
          • Ну так проверка ифом делается на каждом вызове функции, а исключение бросается из неё один раз. Оно и в крестах быстрее будет на таких случаях:
            for (int i = 0; i < 1000000; ++i) {
                if (!function_with_return(i))
                    return false;
            }
            // vs
            try {
                for (int i = 0; i < 1000000; ++i) {
                    function_with_exception(i);
                }
            } catch (...) {
                return false;
            }
            Ответить
            • нет. то что я читал, там сравнивалось что быстрее: сделать проверку ифом, или просто без проверки чего-то там вызвать где заранее известно что бросится исключение. проверка перед вызовом в тесте была медленее чем throw/catch (или как оно там в питоне называется).
              Ответить
              • Такого не было точно. Проверка ифом быстрее, но если исключение статистически скорее не будет бросаться, то выгоднее уже бросать исключение, чем каждый раз проверять

                if key in dict:
                    value = dict[key]

                будет медленнее, чем
                try:
                    value dict[key]
                except:
                    хуйс
                Ответить
          • Эксперементы показали, что суть в другом:
            вызов функции max в два раза дороже условного оператора.
            Ответить
        • А что забавного? Вспомни, как работает reduce.
          Ответить
        • Сейчас бы замерять перформанс питоноговна.
          Ответить
          • Неееет!!! Нужно мерить си биндинги питоноговна вроде numpy с автоматическим распараллеливанием
            Ответить
            • Используй Cython
              Ответить
              • Ишь, какие ручки нежные... А щечки розовые. И ресницы слишком длинные... Обрезать бы надо, а то ни дать ни взять просто барышня.
                Ответить
      • Кстати, это корректно только в том случае, если элементы списка положительны.
        Иначе нужно писать нечто более унылое
        def mymax(lst):
            if not lst: return None
            if len(lst) == 1: return lst[0]
            return max(*lst)
        mymax(lst) or 0
        Ответить
    • cleaned
      Ответить
    • cleaned
      Ответить
    • cleaned
      Ответить
    • cleaned
      Ответить
    • Кстати, 3_14dar, а какой можно проверять, не минуснул ли кто один из комментариев про быдло, а после того автоматически в отместку минусовать весь тред, ощущая себя хозяином положения.

      Интересно, сколько запросов в БД потребуется до полного забвения пидорашки и его армии?
      А если дать кому следует ссылку на тред автогенерации, как скоро потрут нас с Пи? :3
      Ответить
      • Можно

        >пидорашки
        Ты про 3.1415? А кто его армия?
        Ответить
        • Я про http://govnokod.ru/user/7252 и хохлоботов (покойных?).
          Ответить
          • Но пидорашка же - из рашки?
            Ответить
            • Всё же, это интернациональное понятие.
              Ответить
              • Лурка говорит по другому.
                Ответить
                • Значит там ошибка. Геи в основном в европах живут, у нас тут слишком холодно.
                  Ответить
                  • Срочно править лурку!
                    Ответить
                    • Да там огорожено же все.
                      Ответить
                      • #тыжпрограммист

                        Напишем свою лурку! С расизмом! И ненавистью!
                        Ответить
                        • Можно даже не писать код. Просто создать на wikia.com свой раздел со своими правилами. Хоть энциклопедию говна.
                          Ответить
                          • Оказывается уже что то подобное есть

                            http://massakalla.ru/


                            Век живи - век учись
                            Ответить
                  • >>еи в основном в европах живут, у нас тут слишком холодно.
                    Дык они для этого и лезут под мужчин, чтобы погреться.
                    Ответить
                • http://lurkmore.to/_/157553#mws_Poq0FX5
                  Ответить
                  • Ребус позабавил )
                    http://lurkmore.so/images/thumb/0/08/Pidorashka.png/180px-Pidorashka.png
                    Ответить
                  • В одной-единственной статье цитата из /b/ /po/ и всё? Этот термин вообще известен кому-нибудь, кроме его автора и тех, кто с ним непосредственно общался?
                    Ответить
                    • Ну на двачах он вполне известен.
                      Ответить
                      • Он недоработан. Если бы его активно не форсили - он бы сдох через неделю.
                        Ответить
                        • Ты знаешь, сколько из мемов не форсед? Единицы.

                          Сейчас он изредка употребляется (ватник куда убойнее), но все же он есть.
                          Ответить
                      • Угу: https://pbs.twimg.com/media/CCNXQL7UEAI6iG8.jpg
                        Ответить
                      • >>Ну на двачах он вполне известен.
                        >>>на двачах
                        http://vk.com/video27384700_166645818
                        Ответить
                    • https://www.youtube.com/watch?v=Qp6N_Hi3950
                      Ответить
    • max(list or (0,))
      Ответить
      • Тоже можно. Меня парит думать, когда bool вернет false.
        Ответить
    • max(list, default=0)
      Ответить
    • Совершенно не обращая внимания на то, что он абсолютно голый, он начал нервно ходить по комнате. В другой момент Евгений, как минимум, улыбнулся бы этой картине. Голый заспанный парень с взлохмаченными волосами, с выпоротой задницей и болтающимся членом в расстроенных чувствах носится по его спальне. Но сейчас ему было не до улыбок.
      Ответить

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