- 1
- 2
list = [1,2,3,4,5,6,7,8,9,10]
string = "%s"*len(list) % tuple(list)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−353.1
list = [1,2,3,4,5,6,7,8,9,10]
string = "%s"*len(list) % tuple(list)
guest 23.04.2009 16:50 # +7
А, ну да. Минуснули пехепешники. Многие из них кретины, не поняли в чем соль.
guest 23.04.2009 19:54 # 0
А в чем соль? в том что список произвольной длины может быть и пожрет память? Тогда как то так:
str = ''.join([repr(el) for el in list])
или так:
str = reduce(lambda x,y: str(x)+str(y), list)
Или таки я торможу на ровном месте и не вижу соли.
guest 23.04.2009 20:16 # +1
Кстати, будете смеяться, но вариант с форматной строкой самый быстрый. Для list = range(1,10000000) например. Соответсвенно 8 сек, 13 сек и очень дохера сек для reduce.Вариант с map где-то 13 сек тоже. Расход памяти для говноварианта всего в 1.7 раза больше.
guest 19.12.2009 00:48 # 0
guest 23.04.2009 21:16 # −1
guest 23.04.2009 21:29 # +1
Да, если он в программе последний :)
guest 23.04.2009 21:39 # +1
В конце концов может там потом есть del(list) и del(string)
guest 23.04.2009 21:44 # 0
Угу, и они даже отработают. Но не помогут :)
guest 23.04.2009 22:12 # 0
ну после del() позвать gc.collect()
:))
Но шутки шутками: посмотрел - сборщик мусора действительно работает малопредсказуемо в пистоне, а звать его руками - так он тормозит неприлично.
guest 23.04.2009 22:13 # 0
Что к теме отношения не имеет, там чел явно не файл в список читает гигабайтный, явно что-то такое для вывода.
guest 13.05.2009 14:18 # +1
Кроме того list - переопределяет глобальную сущность.
Oleg_quadro 21.08.2009 00:33 # 0
TheHamstertamer 03.06.2011 10:32 # 0
только как-то надумано