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

    −353.1

    1. 1
    2. 2
    list = [1,2,3,4,5,6,7,8,9,10]
    string = "%s"*len(list) % tuple(list)

    Запостил: guest, 23 Апреля 2009

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

    • говноед:
      А, ну да. Минуснули пехепешники. Многие из них кретины, не поняли в чем соль.
      Ответить
    • nooob:
      А в чем соль? в том что список произвольной длины может быть и пожрет память? Тогда как то так:

      str = ''.join([repr(el) for el in list])

      или так:

      str = reduce(lambda x,y: str(x)+str(y), list)

      Или таки я торможу на ровном месте и не вижу соли.
      Ответить
    • nooob:
      Кстати, будете смеяться, но вариант с форматной строкой самый быстрый. Для list = range(1,10000000) например. Соответсвенно 8 сек, 13 сек и очень дохера сек для reduce.Вариант с map где-то 13 сек тоже. Расход памяти для говноварианта всего в 1.7 раза больше.
      Ответить
      • А если сразу сделать не list, а tuple, то будет ещё быстрее (у меня с 3.35 до 2.84).
        Ответить
    • Дык перцовый же код, годный!
      Ответить
    • [quote]Дык перцовый же код, годный![/quote]

      Да, если он в программе последний :)
      Ответить
    • nooob:
      В конце концов может там потом есть del(list) и del(string)
      Ответить
    • [quote]В конце концов может там потом есть del(list) и del(string)[/quote]

      Угу, и они даже отработают. Но не помогут :)
      Ответить
    • nooob:
      ну после del() позвать gc.collect()

      :))

      Но шутки шутками: посмотрел - сборщик мусора действительно работает малопредсказуемо в пистоне, а звать его руками - так он тормозит неприлично.
      Ответить
    • nooob:
      Что к теме отношения не имеет, там чел явно не файл в список читает гигабайтный, явно что-то такое для вывода.
      Ответить
    • anonymous:
      Кроме того list - переопределяет глобальную сущность.
      Ответить
    • Что код делает?
      Ответить

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