"metiu uitem" wrote:
> Say you have a flat list:
> ['a', 1, 'b', 2, 'c', 3]
>
> How do you efficiently get
> [['a', 1], ['b', 2], ['c', 3]]
simplest possible (works in all Python versions):
L = ['a', 1, 'b', 2, 'c', 3]
out = []
for i in range(0, len(L), 2):
out.append(L[i:i+2])
or, on one line (works in all modern versions):
out = [L[i:i+2] for i in range(0, len(L), 2)]
or, from the slightly-silly-department:
out = map(list, zip(L[0::2], L[1::2]))
or, using the standard grouping pydiom:
out = []; item = []
for i in L:
item.append(i)
if len(item) == 2:
out.append(item)
item = []
if item:
out.append(item)
etc.
</F>
--
http://mail.python.org/mailman/listinfo/python-list