[python] Více proměnných ve smyčce FOR
Jan Janech
devel na atlas.sk
Neděle Březen 1 13:54:35 CET 2009
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 na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
>
--
____________________________
Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita
Další informace o konferenci Python