Article View: pl.comp.lang.python
Article #28291Re: Pytania początkującego cz. 1
From: Edek
Date: Thu, 10 Nov 2011 16:22
Date: Thu, 10 Nov 2011 16:22
53 lines
2432 bytes
2432 bytes
On 11/10/2011 04:41 PM, hubert depesz lubaczewski wrote:
> On 2011-11-10, Edek<edek.pienkowski@gmail.com> wrote:
>>> czy tych haszy się do czegoś używa?
>>
>>>>> key1 = (1,2,3)
>>>>> key2 = [1,2,3]
>>>>> d1 = { key1 : 'raz dwa trzy'}
>>>>> d1[key2] = 'lista'
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in<module>
>> TypeError: unhashable type: 'list'
>>>>>
>
> chyba nie do końca kumam. jaki jest cel robienia klucza w d1 w taki
> sposób?
Czasami klucz nie tylko jest złożony, ale może być złożony
z dowolnej liczby elementów. Np.
(a,)
(a,g,b,g)
tuple() - pusta krotka też jest kluczem
tuple(int) - krotka typów jest kluczem
int - type jest kluczem
type(tuple())
Nie chce mi się wymyslać prostego przykładu powyższych
kluczy w jednym dict, ale sam tego często i gęsto używam.
>
> i powiązane - jak zrobić przypisanie do "dicta w dictcie"?
>
> np. w perlu mam:
>
> $hash->{'klucz'}->{'pod-klucz'} = 123;
>
> jak to zrobić w pythonie?
>
> probowalem:
>>>> d1["a"]["b"]="123"
> Traceback (most recent call last):
> File "<stdin>", line 1, in<module>
> KeyError: 'a'
Assignment wstawia klucz. Access marudzi jak klucza nie ma.
Najprawszy subscript + assignment to assignment, lewsze access.
if "a" not in d1: d1["a"] = {}
d1["a"]["b"] = "123"
albo literal:
d1 = { "a" : { "b" : "123" } }
Edek
Technical Details
Message-ID:
<j9gtlj$nob$1@node2.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailReferences:
<vhsqo8-di8.ln1@depesz.com> <slrnjblpjq.7mn.dozzie@jarowit.net> <3q0to8-r2o.ln1@depesz.com> <j9gos2$ib6$1@node2.news.atman.pl> <4v7to8-ieq.ln1@depesz.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Edek <edek.pienkowski@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: Pytania początkującego cz. 1 Date: Thu, 10 Nov 2011 17:22:38 +0100 Organization: ATMAN - ATM S.A. Lines: 53 Message-ID: <j9gtlj$nob$1@node2.news.atman.pl> References: <vhsqo8-di8.ln1@depesz.com> <slrnjblpjq.7mn.dozzie@jarowit.net> <3q0to8-r2o.ln1@depesz.com> <j9gos2$ib6$1@node2.news.atman.pl> <4v7to8-ieq.ln1@depesz.com> NNTP-Posting-Host: 213.195.174.246 Mime-Version: 1.0 X-Trace: node2.news.atman.pl 1320942068 24331 213.195.174.246 (10 Nov 2011 16:21:08 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Thu, 10 Nov 2011 16:21:08 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Linux/3.1.0-15 Thunderbird/3.1.0 In-Reply-To: <4v7to8-ieq.ln1@depesz.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit