🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #27188

Re: Python a hashmapa

#27188
From: wodzik
Date: Sat, 09 Jan 2010 22:15
46 lines
3128 bytes
On 2010-01-09 22:28, Jan Kaliszewski wrote:

> "Hashmapa" to jakiś potworek językowy. Po polsku na ogół mówimy o
> tablicy mieszającej (lub haszującej), bądź ogólniej o tablicy
> asocjacyjnej lub słowniku -- ang. dictionary,

Tak wiem, ale już się jakoś do niego przyzwyczaiłem. Nawet część 
prowadzących używa tej nazwy ;)

> Podobną do słowników strukturą są w Pythonie zbiory (set). Można je
> traktować jako słowniki z samymi kluczami (bez wartości) + wygodnymi
> metodami do typowych operacji na zbiorach.

Będzie się trzeba dokształcić z zbiorów.

> A według jakiego kryterium określasz "tożsamość" elementów w
> dotychczasowym rozwiązaniu opartym na listach? Bo jeżeli wg tożsamości
> (id) samego obiektu (lub równości, gdy nie jest specjalnie definiowana,
> co również oznacza test tożsamości), to prawdopodobnie nie musisz żadnej
> specjalnej funkcji pisać -- zastąp listy zbiorami i już [test ,,x in
> set'' daje średnio O(1)].

Sprawdzam czy są na liście czymś w stylu: "if (not tmp in self.dzieci) & 
(not tmp in self.rozpatrzone):", a funkcja do porównania wygląda tak:

def __cmp__(self,plansza):
     if isinstance(plansza, Plansza):
         tmp = cmp(self.h, plansza.h)
         if tmp:
             return tmp
         return cmp(self.tablica, plansza.tablica)
     else:
         return cmp(self.h, plansza)

Bo za pomocą zwykłego porównania porównuje chyba samo id obiektu, a tu 
chodziło o to, że ma sprawdzić czy h jest takie samo, a jeśli tak 
porównać jeszcze tablice. W ogóle zastanawiam się jak zrobić, żeby z 
zbioru wyciągał najpierw obiekty o jak najmniejszym h. Na liście daje 
jakieś sortowanie przy wstawianiu i problem z głowy. Przy zbiorach chyba 
by dać listę zbiorów, a w każdym elementy o innym h. Sprawdziło by się 
takie co, czy macie inne pomysły?

> Pozdr.
> *j

Pozdrawiam wodzik
Technical Details
Message-ID: <hiav57$7cf$1@zeus.man.szczecin.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.man.szczecin.pl!not-for-mail
References: <hi9a48$c1b$1@zeus.man.szczecin.pl> <20100109102348.d563af8e.natural-born-killer@dontmailme.com> <hi9nmc$iqv$1@zeus.man.szczecin.pl> <hi9rbf$1ke$2@solani.org> <hiapsg$4mg$1@zeus.man.szczecin.pl> <op.u6aa9spdfvx12t@jerzozwiesz.home.aster.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.man.szczecin.pl!not-for-mail
From: wodzik <wodzik@noreply.com>
Newsgroups: pl.comp.lang.python
Subject: Re: Python a hashmapa
Date: Sat, 09 Jan 2010 23:15:10 +0100
Organization: ACI - http://www.aci.com.pl
Lines: 46
Message-ID: <hiav57$7cf$1@zeus.man.szczecin.pl>
References: <hi9a48$c1b$1@zeus.man.szczecin.pl> <20100109102348.d563af8e.natural-born-killer@dontmailme.com> <hi9nmc$iqv$1@zeus.man.szczecin.pl> <hi9rbf$1ke$2@solani.org> <hiapsg$4mg$1@zeus.man.szczecin.pl> <op.u6aa9spdfvx12t@jerzozwiesz.home.aster.pl>
NNTP-Posting-Host: 212.14.0.154
Mime-Version: 1.0
X-Trace: zeus.man.szczecin.pl 1263075304 7567 212.14.0.154 (9 Jan 2010 22:15:04 GMT)
X-Complaints-To: usenet@news.man.szczecin.pl
NNTP-Posting-Date: Sat, 9 Jan 2010 22:15:04 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0
In-Reply-To: <op.u6aa9spdfvx12t@jerzozwiesz.home.aster.pl>
X-Antivirus: avast! (VPS 100109-0, 2010-01-09), Outbound message
X-Antivirus-Status: Clean
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit