Forum » Programiranje » [Python] Iz ene podatkovne strukture v drugo: kakšne so še rešitve poleg "proceduralne"?
[Python] Iz ene podatkovne strukture v drugo: kakšne so še rešitve poleg "proceduralne"?
HotBurek ::
Dobro jutro.
Evo, tokrat pa izziv okrog podatkovnih struktur.
Vhodni podatki (to sicer pride iz SQL-a) so v takšni obliki:
Podatki so sortirani po id-ju, ASC.
Primary key je sestavljen iz id-ja in key-ja, tako da ne pride do ponavljanj.
Na izhodu pa bi želel takšno obliko:
Se pravi list of dictionariez, kjer bi za posamičen dictionary elemenet:
- za ["id"] vrnil id kot string/int
- za ["keys"] pa list string-ov npr. ["moka", "pšenična", "500g"]
Problem sem rešil "proceduralno" (1x for range, 1x if/elseif/else, 2 x if/else), a nisem siguren, če bi vas matral z "mojo" kodo.
Me pa zanima, kakšne so še druge opcije?
Evo, tokrat pa izziv okrog podatkovnih struktur.
Vhodni podatki (to sicer pride iz SQL-a) so v takšni obliki:
main_list = [ { "id": 0, "key": "moka" }, { "id": 0, "key": "pšenična" }, { "id": 0, "key": "500g" }, { "id": 1, "key": "jogurt" }, { "id": 1, "key": "160ml" }, { "id": 2, "key": "sir" } ];
Podatki so sortirani po id-ju, ASC.
Primary key je sestavljen iz id-ja in key-ja, tako da ne pride do ponavljanj.
Na izhodu pa bi želel takšno obliko:
id: 0 keys: ['moka', 'pšenična', '500g'] id: 1 keys: ['jogurt', '160ml'] id: 1 keys: ['sir']
Se pravi list of dictionariez, kjer bi za posamičen dictionary elemenet:
- za ["id"] vrnil id kot string/int
- za ["keys"] pa list string-ov npr. ["moka", "pšenična", "500g"]
Problem sem rešil "proceduralno" (1x for range, 1x if/elseif/else, 2 x if/else), a nisem siguren, če bi vas matral z "mojo" kodo.
Me pa zanima, kakšne so še druge opcije?
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
- spremenilo: HotBurek ()
netopypy ::
kolega gpt pravijo tako nekako
in id: *2* keys: ['sir']
result_dict = {} for item in main_list: if item['id'] not in result_dict: result_dict[item['id']] = [] result_dict[item['id']].append(item['key']) for id, keys in result_dict.items(): print(f"id: {id} keys: {keys}")
in id: *2* keys: ['sir']
Zgodovina sprememb…
- spremenilo: netopypy ()
HotBurek ::
Super rešitev.
Preveril, in dela kot se gre.
Hvala.
Preveril, in dela kot se gre.
Hvala.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
Zgodovina sprememb…
- spremenilo: HotBurek ()
SloKin ::
A ne mores tega resit v sql?
https://stackoverflow.com/a/35173111
ali:
http://www.sqlines.com/mysql/functions/...
https://stackoverflow.com/a/35173111
ali:
http://www.sqlines.com/mysql/functions/...
Zgodovina sprememb…
- spremenilo: SloKin ()
HotBurek ::
Well, rečmo da je to tudi ena izmed rešitev.
Meni vse, kar je XML, ne diši preveč. Se ne znajdem.
Je pa ok, če kdo drug to rajši uporablja.
Skratka STUFF + XML.
Meni vse, kar je XML, ne diši preveč. Se ne znajdem.
Je pa ok, če kdo drug to rajši uporablja.
Skratka STUFF + XML.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Davčne blagajne (strani: 1 2 3 4 … 24 25 26 27 )Oddelek: Programiranje | 334295 (74298) | Macketina |
» | [Python3] Sortiranje 2D dict-a?Oddelek: Programiranje | 1212 (925) | marska83 |
» | Python - pomoč (strani: 1 2 3 )Oddelek: Programiranje | 18179 (8927) | black ice |
» | [javaScript] Preverjanje formata zapisa EMŠOOddelek: Programiranje | 2961 (2581) | win64 |
» | php array in path določenega keya:Oddelek: Izdelava spletišč | 1368 (1196) | HardFu |