Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > cz.comp.lang.python > #3126
| From | Matěj Cepl <mcepl@cepl.eu> |
|---|---|
| Newsgroups | cz.comp.lang.python |
| Subject | Re: [python] Rekurzivní generátor v Pythonu 3? |
| Date | 2016-08-30 11:39 +0200 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <slrnnsal28.ing.mcepl@mitmanek.ceplovi.cz> (permalink) |
| References | <8a02dd40-db1a-4f1f-9f67-de14e49b5546@googlegroups.com> <mailman.23.1472408594.13667.python@py.cz> |
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: mcepl@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
Back to cz.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
Rekurzivní generátor v Pythonu 3? Matěj Cepl <mcepl@cepl.eu> - 2016-08-27 14:09 -0700
Re: [python] Rekurzivní generátor v Pythonu 3? Matěj Cepl <mcepl@cepl.eu> - 2016-08-30 11:39 +0200
Re: [python] Rekurzivní generátor v Pythonu 3? Matěj Cepl <mcepl@cepl.eu> - 2016-08-31 11:58 +0200
Re: [python] Rekurzivní generátor v Pythonu 3? Ondrej Tuma <konference@webjet.cz> - 2016-08-30 16:09 +0200
csiph-web