On 01/13/2013 07:45 AM, subhabangal...@gmail.com wrote:
Dear Group,

I have a list like,

list1=[1,2,3,4,5,6,7,8,9,10,11,12]
Now, if I want to take a slice of it, I can.
It may be done in,
list2=list1[:3]
print list2
[1, 2, 3]

If I want to iterate the list, I may do as,

for i in list1:
        print "Iterated Value Is:",i

        
Iterated Value Is: 1
Iterated Value Is: 2
Iterated Value Is: 3
Iterated Value Is: 4
Iterated Value Is: 5
Iterated Value Is: 6
Iterated Value Is: 7
Iterated Value Is: 8
Iterated Value Is: 9
Iterated Value Is: 10
Iterated Value Is: 11
Iterated Value Is: 12

Now, I want to combine iterator with a slicing condition like

for i=list2 in list1:
        print "Iterated Value Is:",i

So, that I get the list in the slices like,
[1,2,3]
[4,5,6]
[7,8,9]
[10,11,12]

But if I do this I get a Syntax Error, is there a solution?

If anyone of the learned members may kindly let me know?

Apology for any indentation error,etc.

Thanking You in Advance,

Regards,
Subhabrata

        




Another good answer is to use a recipe from itertools docs page.
There are a lot of good recipes there and you may want to keep
them all in a module you can import from when needed. Here
is the recipe:

def grouper(n, iterable, fillvalue=None):
"""From itertools recipes: collect data into fixed-length chunks or blocks."""
    # grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx
    args = [iter(iterable)] * n
    return zip_longest(fillvalue=fillvalue, *args)

>>> list(grouper(3, range(12))
...
...
...
... )
[(0, 1, 2), (3, 4, 5), (6, 7, 8), (9, 10, 11)]


HTH, - mitya


--
Lark's Tongue Guide to Python: http://lightbird.net/larks/

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to