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