[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