iterating over list with one mising value
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Tue Feb 7 20:50:56 EST 2012
(Apologies in advance for breaking threading, but the original post in
this thread doesn't appear for me.)
> On Tue, Feb 7, 2012 at 5:27 AM, Sammy Danso <samdansobe at yahoo.com>
> wrote:
>>
>> Hello experts,
>> I am having trouble accessing the content of my list. my list content
>> has 2-pair value with the exception of one which has single value. here
>> is an example ['a', 1, 'b', 1, 'c', 3, 'd']
>>
>> I am unable to iterate through list to access invidual value pairs
Here's a recipe to collate a sequence of interleaved items. It collects
every nth item:
from itertools import islice, tee
def collate(iterable, n):
t = tee(iter(iterable), n)
slices = (islice(it, i, None, n) for (i, it) in enumerate(t))
return [list(slice) for slice in slices]
And here it is in use:
>>> seq = [1, 'a', 'A', 2, 'b', 'B', 3, 'c', 'C', 4, 'd', 'D', 5, 'e']
>>> collate(seq, 3)
[[1, 2, 3, 4, 5], ['a', 'b', 'c', 'd', 'e'], ['A', 'B', 'C', 'D']]
>>> collate(seq, 2)
[[1, 'A', 'b', 3, 'C', 'd', 5], ['a', 2, 'B', 'c', 4, 'D', 'e']]
>>> collate(seq, 9)
[[1, 4], ['a', 'd'], ['A', 'D'], [2, 5], ['b', 'e'], ['B'], [3], ['c'],
['C']]
--
Steven
More information about the Python-list
mailing list