Because that looks at the values of the array and returns the items which have a value that is divisible by two, not the position of the value within the array. It is simpler to comprehend if you don't put numbers in the list:
>>> l = [ 'pos 0', 'pos 1', 'pos 2', 'pos 3' ] >>> filter(lambda x: not x%2, l) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 1, in <lambda> TypeError: not all arguments converted during string formatting >>> [ val for val, i in itertools.izip(l, itertools.count()) if i % 2 ] ['pos 1', 'pos 3'] What the OP originally asked for was for items in the i'th position in a list, where i is odd. Your solutions all ignore the position, and only look at the value. On Thu, Dec 9, 2010 at 11:27 AM, Cal Leeming [Simplicity Media Ltd] <cal.leem...@simplicitymedialtd.co.uk> wrote: > I see no need to get itertools involved ;) Why not just use this: > > filter(lambda x: not x%2, a) > > > On 09/12/2010 11:24, Tom Evans wrote: >> >> Hmm, those are the values that are odd, he wanted the values from odd >> indices, eg: >> >>>>> a=[2,3,4,5,6,7] >>>>> filter(lambda x: x%2, a) >> >> [3, 5, 7] >>>>> >>>>> [ val for val, i in itertools.izip(a, itertools.count()) if not i % 2 ] >> >> [2, 4, 6] >> >> That could probably be written a bit nicer.. >> >> On Thu, Dec 9, 2010 at 10:44 AM, Cal Leeming [Simplicity Media Ltd] >> <cal.leem...@simplicitymedialtd.co.uk> wrote: >>>>>> >>>>>> mylist = [1,2,3,4,5,6,7,8] >>>>>> filter(lambda x: x%2, mylist) >>> >>> [1, 3, 5, 7] >>> This what you need? >>> >>> On 09/12/2010 10:34, Phani Chand wrote: >>>> >>>> i am passing though a list{1,2,3,4} but i want only the numbers with odd >>>> index in template written in html -- >>>> You received this message because you are subscribed to the Google >>>> Groups >>>> "Django users" group. >>>> To post to this group, send email to django-us...@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> django-users+unsubscr...@googlegroups.com. >>>> For more options, visit this group at >>>> http://groups.google.com/group/django-users?hl=en. >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Django users" group. >>> To post to this group, send email to django-us...@googlegroups.com. >>> To unsubscribe from this group, send email to >>> django-users+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/django-users?hl=en. >>> >>> > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.