zip() og zip(*) í python
Segjum sem svo að við höfum tvo lista sem innihalda tengda hluti í sömu röð, t.d. einn lista af nöfnum og annan af kennitölum þar sem báðir listar eru raðaðir eftir kennitölum. Hvernig röðum við þeim báðum útfrá gildum í öðrum?
Það getur verið hentugt að sameina tvo lista með zip fallinu í python.
zip(['c','d','a'],[1,2,3]) verður [('c',1),('d',2),('a',3)], semsagt listi af pörum úr báðum listunum.
Getum þvínæst raðað þessum lista með sort en hvað svo? Jú, með zip(*) getum við tekið listana aftur í sundur.
a = ['c','d','a']
b = [1,2,3]
t = zip(a,b)
t.sort()
a,b = zip(*t)
a -> ['a','c','d']
b -> [3,1,2]
og þá erum við búin að raða seinni listanum eftir þeim fyrri.
Stanslaust stuð.
Nonni - 04/04/09 23:03 #
zip heitir zip því það rennir saman tveimur listum, virkar eins og rennilás.
Hefurðu verið að nota itertools líka, Matti?