On 2016-08-28, 10:54 GMT, Petr Messner wrote: > Na tohle se vykašli. Jakmile dokument nemá stromovou > strukturu, tak je vše tisíckrát složitější. Dikybohu toto XML > neumí.
Tohle je rada s odpuštěním na h... Ten vstupní datový formát mám daný, s tím nemůžu nic dělat. > nedělej skládání řetězců stylem txt += part, je to strašně > pomalé (O(n^2) místo O(n)).. Z txt si udělej list a používej > append: txt.append(part) a na konci "".join(txt). To je veselé jak tyhle pověry drží. Tohle bylo opraveno v pythonu 2.5 (pokud se nemýlím). ~$ cat test_plus.py out = '' for i in range(10000000): out += 'Nebudu komentovat rychlost algoritmů bez měření' ~$ python3 -mcProfile test_plus.py 3 function calls in 1.970 seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function) 1 1.970 1.970 1.970 1.970 test_plus.py:1(<module>) 1 0.000 0.000 1.970 1.970 {built-in method exec} 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} ~$ cat test_append.py out = [] for i in range(10000000): out.append('Nebudu komentovat rychlost algoritmů bez měření') outstr = ''.join(out) ~$ python3 -mcProfile test_append.py 10000004 function calls in 3.331 seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function) 1 1.845 1.845 3.331 3.331 test_append.py:1(<module>) 1 0.000 0.000 3.331 3.331 {built-in method exec} 10000000 0.528 0.000 0.528 0.000 {method 'append' of 'list' objects} 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} 1 0.959 0.959 0.959 0.959 {method 'join' of 'str' objects} ~$ Hezký den, Matěj -- https://matej.ceplovi.cz/blog/, Jabber: mc...@ceplovi.cz GPG Finger: 3C76 A027 CA45 AD70 98B5 BC1D 7920 5802 880B C9D8 You either die a hero or you live long enough to see yourself become the villain. -- Harvey Dent in The Dark Knight _______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz