Python style.

Richard Jones Richard.Jones at fulcrum.com.au
Thu May 11 00:07:41 CEST 2000


[Johann Hibschman]
> What you really want is something like:
> 
> for item1, item2 in transpose((list1, list2)):
> 
> to go from a tuple of two lists to a list of many tuples.  That's what
> that awful map None does.

   And, because I haven't had a chance to write any Python for far too long, 
here's an implementation of transpose() :)


Python 1.5.2 (#1, Apr 18 1999, 16:03:16)  [GCC pgcc-2.91.60 19981201 
(egcs-1.1.1  on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> class transpose:
...  def __init__(self, l1, l2):
...   self.l1, self.l2 = l1, l2
...  def __len__(self):
...   return min(len(self.l1), len(self.l2))
...  def __getitem__(self, i):
...   return self.l1[i], self.l2[i]
... 
>>> list1 = [1,2,3]
>>> list2 = ['a','b','c']
>>> for item1, item2 in transpose(list1, list2):
...  print item1, item2
... 
1 a
2 b
3 c
>>> 

   Note the slightly different syntax in the call to transpose(). Extending the 
transpose class to N lists and re-writing it in C is left as an exercise to the 
reader.


       Richard

ps. god-damn I have to get myself a job writing Python. Have to love a language 
that allows me to - in one shot - interactively crank up the interpreter, write 
a quick-n-dirty class I just thought up and test it out.






More information about the Python-list mailing list