Na toto sluzi fcia ZIP, ktora spoji n zoznamov a vytvori z toho jeden zoznam n-tic:

In [1]: nazvy = ['jedna', 'dva', 'tri', 'ctyri']

In [2]: cisla =  [1, 2, 3, 4]

In [3]: print zip(nazvy, cisla)
[('jedna', 1), ('dva', 2), ('tri', 3), ('ctyri', 4)]


Vas cyklus by sa teda dal napisat:

        vysledek = {}
        for n, c in zip(nazvy, cisla):
                vysledek[n] = c

        print vysledek

Jednoduchsie je ale pouzit priamo konstruktor slovnika na konverziu zoznamu dvojic na slovnik:

        vysledek = dict(zip(nazvy, cisla))

spravi presne to co chcete

Jan Janech

Vasco wrote:
Zdravím,
řeším v Pythonu následující problém:

mám dvě proměnné:
        nazvy = ['jedna', 'dva', 'tri', 'ctyri']
        cisla =  [1, 2, 3, 4]

Potřebuji vytvořit slovník, který bude obsahovat něco takového:
        vysledek = {'jedna': 1, 'dva': 2, 'tri': 3, 'ctyri': 4}

Napadlo mně použít tento způsob s využitím FOR:
        vysledek = {}
        for n, c in nazvy, cisla:
                vysledek[n] = c

        print vysledek

Při zpracování dojde k chybě: ValueError: too many values to unpack

Očividně je ten způsob zápisu 'for' špatný. Mám ale pocit, že jsem někde
něco podobného viděl. Proto bych se rád zeptal. Dá se toto řešit výše
uvedeným způsobem (jen mám někde syntaktickou chybu), anebo jsem úplně
vedle a podobná konstrukce v Pythonu nejde?

S pozdravem,
Vasco
_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python





--

____________________________
Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Reply via email to