Article View: pl.comp.lang.python
Article #27122Re: B-drzewo w Pythonie
From: Jan Kaliszewski
Date: Sun, 03 Jan 2010 16:28
Date: Sun, 03 Jan 2010 16:28
56 lines
2700 bytes
2700 bytes
<wodzik@noreply.com> napisał:
> On 2010-01-03 03:34, Łukasz Rekucki wrote:
>> PS. Ogólnie twój kod nie jest zbyt pythoniczny (sposób użycia for ..
>> in, nazwy metod), a miejscami dość nieoptymalny, np:
>>
>> self.tablica.append(liczba)
>> self.tablica.sort()
> Pewnie dlatego, że dopiero zaczynam kodowanie w Pythonie, ale będę
> wdzięczny za wszelkie sugestie.
> Rozumiem, że lepiej używać for coś in coś?
Tak, np.:
def Print(self):
if self.lisc:
for wartosc in self.tablica:
print wartosc
else:
for i, wskaznik in enumerate(self.wskazniki):
wskaznik.Print()
if i < len(self.tablica):
print self.tablica[i]
Lub nawet:
def Print(self):
if self.lisc:
print '\n'.join(map(str, self.tablica))
else:
for wskaznik, wartosc in itertools.iziplongest(
self.wskazniki, self.tablica):
wskaznik.Print()
if wartosc is not None:
print wartosc
> I jak zoptymalizować ten kawałek z append i sort? czy wyszukać miejsce
> gdzie ma się znaleźć liczba i użyć insert?
Patrz np. : http://docs.python.org/library/bisect.html (być może
> W sumie to podczas pisania nawet specjalnie się nie zastanawiałem nad
> wydajnością, tylko moją wygodą ;]
I słusznie (przedwczesna optymalizacja to źródło [prawie] wszelkiego zła,
jak uważa np. GvR), ale bez przesady -- nie należy używac antyoptymalnych
konstrukcji, które mogą spowolnić program o rząd wielkości...
pozdr.
*j
--
Jan Kaliszewski (zuo)
Technical Details
Message-ID:
<op.u5ytdlmqfvx12t@jerzozwiesz.home.aster.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!plix.pl!newsfeed1.plix.pl!nntp.aster.pl!newsread.aster.pl!newsread1.aster.pl!not-for-mailReferences:
<hhorn8$7ta$1@atlantis.news.neostrada.pl> <a99ed17d-e589-4ea7-87bd-7f551f284852@u41g2000yqe.googlegroups.com> <hhp2v8$kps$1@atlantis.news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!plix.pl!newsfeed1.plix.pl!nntp.aster.pl!newsread.aster.pl!newsread1.aster.pl!not-for-mail From: "Jan Kaliszewski" <zuo@chopin.edu.pl> Newsgroups: pl.comp.lang.python Subject: Re: B-drzewo w Pythonie Date: Sun, 03 Jan 2010 17:28:23 +0100 Organization: Aster Sp. z o.o. Lines: 56 Message-ID: <op.u5ytdlmqfvx12t@jerzozwiesz.home.aster.pl> References: <hhorn8$7ta$1@atlantis.news.neostrada.pl> <a99ed17d-e589-4ea7-87bd-7f551f284852@u41g2000yqe.googlegroups.com> <hhp2v8$kps$1@atlantis.news.neostrada.pl> NNTP-Posting-Host: 62.121.72.3 Mime-Version: 1.0 X-Trace: newsread.aster.pl 1262536264 5021 212.76.33.132 (3 Jan 2010 16:31:04 GMT) X-Complaints-To: abuse@aster.pl NNTP-Posting-Date: Sun, 3 Jan 2010 18:22:15 +0000 (UTC) User-Agent: Opera Mail/9.64 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit