» »

[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:
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.8-)

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
  • spremenilo: HotBurek ()

netopypy ::

kolega gpt pravijo tako nekako
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.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenilo: HotBurek ()

SloKin ::

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.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Davčne blagajne (strani: 1 2 3 424 25 26 27 )

Oddelek: Programiranje
1344334295 (74298) Macketina
»

[Python3] Sortiranje 2D dict-a?

Oddelek: Programiranje
91212 (925) marska83
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10318179 (8927) black ice
»

[javaScript] Preverjanje formata zapisa EMŠO

Oddelek: Programiranje
132961 (2581) win64
»

php array in path določenega keya:

Oddelek: Izdelava spletišč
151368 (1196) HardFu

Več podobnih tem