Thread View: pl.comp.lang.python
8 messages
8 total messages
Started by luky007
Tue, 01 Sep 2009 15:06
zagłębianie się w dict (słownik)
Author: luky007
Date: Tue, 01 Sep 2009 15:06
Date: Tue, 01 Sep 2009 15:06
14 lines
1224 bytes
1224 bytes
Witam,
raczkując w pythonie mam problem z dict.
Mam pewien słownik:
dict = {}
dict {"id":"wartosc"}
znając liczbe zagłebień potrzebuje dodać tylko słowników w środku tj.
więdząc że ilość zagłębień to 3 potrzebuje dodać 3 słowniki w środku:
czyli:
dict("id": "wartość", dict2("sub_id":"innawartosc", dict3(sububid:
zupelniewartość)); - formatowanie poglądowe.
kompletnie nie mam pojęcia jak iterować wgłąb a nie po długości słownika.
Re: zagłębianie się w dict (słownik)
Author: Bart Ogryczak
Date: Tue, 01 Sep 2009 16:38
Date: Tue, 01 Sep 2009 16:38
19 lines
2059 bytes
2059 bytes
On Sep 1, 5:06 pm, luky007 <lu...@NOSPAMo2.pl> wrote:
> Witam,
> raczkując w pythonie mam problem z dict.
>
> Mam pewien słownik:
> dict = {}
> dict {"id":"wartosc"}
>
> znając liczbe zagłebień potrzebuje dodać tylko słowników w środku tj.
> więdząc że ilość zagłębień to 3 potrzebuje dodać 3 słowniki w środku:
> czyli:
> dict("id": "wartość", dict2("sub_id":"innawartosc", dict3(sububid:
> zupelniewartość)); - formatowanie poglądowe.
>
> kompletnie nie mam pojęcia jak iterować wgłąb a nie po długości słownika.
slownik = {}
slownik.setdefault('id',{}).setdefault('sub_id',{})['subsubid'] =
'zupelnieinnawartość'
Re: zagłębianie się w dict (słownik)
Author: luky007
Date: Tue, 01 Sep 2009 17:01
Date: Tue, 01 Sep 2009 17:01
25 lines
1845 bytes
1845 bytes
Bart Ogryczak pisze:
> On Sep 1, 5:06 pm, luky007 <lu...@NOSPAMo2.pl> wrote:
>> Witam,
>> raczkując w pythonie mam problem z dict.
>>
>> Mam pewien słownik:
>> dict = {}
>> dict {"id":"wartosc"}
>>
>> znając liczbe zagłebień potrzebuje dodać tylko słowników w środku tj.
>> więdząc że ilość zagłębień to 3 potrzebuje dodać 3 słowniki w środku:
>> czyli:
>> dict("id": "wartość", dict2("sub_id":"innawartosc", dict3(sububid:
>> zupelniewartość)); - formatowanie poglądowe.
>>
>> kompletnie nie mam pojęcia jak iterować wgłąb a nie po długości słownika.
>
> slownik = {}
> slownik.setdefault('id',{}).setdefault('sub_id',{})['subsubid'] =
> 'zupelnieinnawartość'
>
dzięki ale w jaki sposób po tym iterować?
np. chce wstawiać slownik z 'subsubid': 'zupelnieinnawartosc' jesli
jakiś klucz-wartość np. 'item': '3' na poziomie 'sub_id' istnieje?
Re: zagłębianie się w dict (słownik)
Author: luky007
Date: Tue, 01 Sep 2009 17:03
Date: Tue, 01 Sep 2009 17:03
31 lines
2069 bytes
2069 bytes
luky007 pisze:
> Bart Ogryczak pisze:
>> On Sep 1, 5:06 pm, luky007 <lu...@NOSPAMo2.pl> wrote:
>>> Witam,
>>> raczkując w pythonie mam problem z dict.
>>>
>>> Mam pewien słownik:
>>> dict = {}
>>> dict {"id":"wartosc"}
>>>
>>> znając liczbe zagłebień potrzebuje dodać tylko słowników w środku tj.
>>> więdząc że ilość zagłębień to 3 potrzebuje dodać 3 słowniki w środku:
>>> czyli:
>>> dict("id": "wartość", dict2("sub_id":"innawartosc", dict3(sububid:
>>> zupelniewartość)); - formatowanie poglądowe.
>>>
>>> kompletnie nie mam pojęcia jak iterować wgłąb a nie po długości
>>> słownika.
>>
>> slownik = {}
>> slownik.setdefault('id',{}).setdefault('sub_id',{})['subsubid'] =
>> 'zupelnieinnawartość'
>>
>
> dzięki ale w jaki sposób po tym iterować?
> np. chce wstawiać slownik z 'subsubid': 'zupelnieinnawartosc' jesli
> jakiś klucz-wartość np. 'item': '3' na poziomie 'sub_id' istnieje?
analogicznie nie wiem w jaki sposób wstawiać setdefualt w zależności od
liczby zagłebień które wybiore... (gdy chce 4,5,6 zagłebień ...
potrzebna chyba jakaś pętla...)
Re: zagłębianie się w dict (słownik)
Author: Radomir Dopieralski
Date: Tue, 01 Sep 2009 17:48
Date: Tue, 01 Sep 2009 17:48
51 lines
2470 bytes
2470 bytes
At Tue, 01 Sep 2009 17:06:22 +0200, luky007 wrote:
> Witam,
> raczkując w pythonie mam problem z dict.
>
> Mam pewien słownik:
> dict = {}
> dict {"id":"wartosc"}
>
> znając liczbe zagłebień potrzebuje dodać tylko słowników w środku tj.
> więdząc że ilość zagłębień to 3 potrzebuje dodać 3 słowniki w środku:
> czyli:
> dict("id": "wartość", dict2("sub_id":"innawartosc", dict3(sububid:
> zupelniewartość)); - formatowanie poglądowe.
>
> kompletnie nie mam pojęcia jak iterować wgłąb a nie po długości słownika.
Wydaje mi sie, ze zwykly numerek ci tu nie wystarczy -- zeby
zidentyfikowac konkretna wartosc w takim drzewie, mysisz podac
identyfikatory wszystkich galezi. Czyli na przyklad:
tree = {
'a': 30,
'b': {
'a': {
'a': 10,
'b': 20,
},
'b': 40,
},
'c': 50,
}
print tree['a']
30
print tree['b']['a']['a']
10
print tree['b']['b']
20
Owszem, mozesz sobie napisac obiekt ktory bedziesz mogl adresowac tuplami:
tree['a'] = 30; tree['b', 'a', 'a'] = 10
jest to nawet niezle cwiczenie. Ale samo podanie glebokosci nie wystarczy.
--
Radomir Dopieralski, http://sheep.art.pl
Re: zagłębianie się w dict (słownik)
Author: Adam Kochanowski
Date: Wed, 02 Sep 2009 07:00
Date: Wed, 02 Sep 2009 07:00
7 lines
1308 bytes
1308 bytes
luky007 pisze: > analogicznie nie wiem w jaki sposób wstawiać setdefualt w zależności od > liczby zagłebień które wybiore... (gdy chce 4,5,6 zagłebień ... > potrzebna chyba jakaś pętla...) Ja bym wyskrobał jakąś sprytną rekurencyjną funkcję.
Re: zagłębianie się w dict (słownik)
Author: Radomir Dopieralski
Date: Wed, 02 Sep 2009 08:29
Date: Wed, 02 Sep 2009 08:29
24 lines
2065 bytes
2065 bytes
At Wed, 02 Sep 2009 09:00:54 +0200, Adam Kochanowski wrote:
> luky007 pisze:
>
>> analogicznie nie wiem w jaki sposób wstawiać setdefualt w zależności od
>> liczby zagłebień które wybiore... (gdy chce 4,5,6 zagłebień ...
>> potrzebna chyba jakaś pętla...)
>
> Ja bym wyskrobał jakąś sprytną rekurencyjną funkcję.
Rekurencja w pythonie jest ograniczona, mozna byc niemilo zaskoczonym.
Co zlego w zwyklym forze?
def get_node(tree, path):
node = tree
for part in path:
node = node[part]
return node
W przypadku nieistniejacej lub niepoprawnej sciezki, rzuci odpowiednim
wyjatkiem.
--
Radomir Dopieralski, http://sheep.art.pl
Re: zagłębianie się w dict (słownik)
Author: William Bonawentura
Date: Wed, 02 Sep 2009 09:41
Date: Wed, 02 Sep 2009 09:41
9 lines
1421 bytes
1421 bytes
Użytkownik "luky007" <luky1@NOSPAMo2.pl> napisał w wiadomości news:h7jk57$6r9$2@news.onet.pl... >> np. chce wstawiać slownik z 'subsubid': 'zupelnieinnawartosc' jesli jakiś >> klucz-wartość np. 'item': '3' na poziomie 'sub_id' istnieje? > Może wystarczy ci jeden słownik tylko stosuj jako klucz tuplę ze ścieżką.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads