Re: yet another list comprehension question
namekuseijin wrote: On May 4, 9:15 am, David Robinow drobi...@gmail.com wrote: On Mon, May 4, 2009 at 2:33 AM, namekuseijin namekuseijin.nos...@gmail.com wrote: ls = [(1,2), (3,4), (5, None), (6,7), (8, None)] [(x,y) for (x,y) in ls if y] [(1, 2), (3, 4), (6, 7)] Nope. That filters out 0 as well as None. Not what the OP asked for. True. I'm still a C programmer at heart I guess. ah, the flexibility of 0... ;) -- http://mail.python.org/mailman/listinfo/python-list This seems to work for any length tuples : a = [(1,2), (3,4, 'goes'), (5,None), (6,7, 8, 'as', None), (8, None), (9, 0)] [tup for tup in a if not [e for e in tup if e == None]] [(1, 2), (3, 4, 'goes'), (9, 0)] -- http://mail.python.org/mailman/listinfo/python-list
Re: yet another list comprehension question
2009/5/5 Ricardo Aráoz ricar...@gmail.com: This seems to work for any length tuples : a = [(1,2), (3,4, 'goes'), (5,None), (6,7, 8, 'as', None), (8, None), (9, 0)] [tup for tup in a if not [e for e in tup if e == None]] [(1, 2), (3, 4, 'goes'), (9, 0)] Why that extra for? KISS a = [(1,2), (3,4, 'goes'), (5,None), (6,7, 8, 'as', None), (8, None), (9, 0)] [(1, 2), (3, 4, 'goes'), (5, None), (6, 7, 8, 'as', None), (8, None), (9, 0)] [t for t in a if None not in t] [(1, 2), (3, 4, 'goes'), (9, 0)] in works perfectly well for any sequence, including strings. -- http://mail.python.org/mailman/listinfo/python-list
Re: yet another list comprehension question
ls = [(1,2), (3,4), (5, None), (6,7), (8, None)] [(x,y) for (x,y) in ls if y] [(1, 2), (3, 4), (6, 7)] -- http://mail.python.org/mailman/listinfo/python-list
Re: yet another list comprehension question
Snorri H a.a.ovtchinni...@gmail.com writes: On May 3, 6:13 am, Ross ross.j...@gmail.com wrote: I'm trying to set up a simple filter using a list comprehension. If I have a list of tuples, a = [(1,2), (3,4), (5,None), (6,7), (8, None)] and I wanted to filter out all tuples containing None, I would like to get the new list b = [(1,2), (3,4),(6,7)]. I tried b = [i for i in a if t for t in i is not None] but I get the error that t is not defined. What am I doing wrong? Works as well: filter(lambda x:not None in x, your_list) ^ This is usually spelt 'None not in x'. -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list
Re: yet another list comprehension question
On May 3, 6:13 am, Ross ross.j...@gmail.com wrote: I'm trying to set up a simple filter using a list comprehension. If I have a list of tuples, a = [(1,2), (3,4), (5,None), (6,7), (8, None)] and I wanted to filter out all tuples containing None, I would like to get the new list b = [(1,2), (3,4),(6,7)]. I tried b = [i for i in a if t for t in i is not None] but I get the error that t is not defined. What am I doing wrong? Works as well: filter(lambda x:not None in x, your_list) -- http://mail.python.org/mailman/listinfo/python-list
Re: yet another list comprehension question
On Mon, May 4, 2009 at 2:33 AM, namekuseijin namekuseijin.nos...@gmail.com wrote: ls = [(1,2), (3,4), (5, None), (6,7), (8, None)] [(x,y) for (x,y) in ls if y] [(1, 2), (3, 4), (6, 7)] Nope. That filters out 0 as well as None. Not what the OP asked for. -- http://mail.python.org/mailman/listinfo/python-list
Re: yet another list comprehension question
On May 4, 9:15 am, David Robinow drobi...@gmail.com wrote: On Mon, May 4, 2009 at 2:33 AM, namekuseijin namekuseijin.nos...@gmail.com wrote: ls = [(1,2), (3,4), (5, None), (6,7), (8, None)] [(x,y) for (x,y) in ls if y] [(1, 2), (3, 4), (6, 7)] Nope. That filters out 0 as well as None. Not what the OP asked for. True. I'm still a C programmer at heart I guess. ah, the flexibility of 0... ;) -- http://mail.python.org/mailman/listinfo/python-list
Re: yet another list comprehension question
This isn't list comprehension, but it's something to keep in mind: b = filter(lambda x: None not in x, input_list) On Sat, May 2, 2009 at 10:25 PM, CTO debat...@gmail.com wrote: On May 2, 10:13 pm, Ross ross.j...@gmail.com wrote: I'm trying to set up a simple filter using a list comprehension. If I have a list of tuples, a = [(1,2), (3,4), (5,None), (6,7), (8, None)] and I wanted to filter out all tuples containing None, I would like to get the new list b = [(1,2), (3,4),(6,7)]. try this: b = [i for i in a if None not in i] I tried b = [i for i in a if t for t in i is not None] but I get the error that t is not defined. What am I doing wrong? You've got a for and an if backwards. t isn't defined when the if tries to evaluate it. -- http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list
Re: yet another list comprehension question
On Sat, May 2, 2009 at 7:13 PM, Ross ross.j...@gmail.com wrote: I'm trying to set up a simple filter using a list comprehension. If I have a list of tuples, a = [(1,2), (3,4), (5,None), (6,7), (8, None)] and I wanted to filter out all tuples containing None, I would like to get the new list b = [(1,2), (3,4),(6,7)]. b = [tup for tup in a if None not in tup] Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list
Re: yet another list comprehension question
On May 2, 7:21 pm, Chris Rebert c...@rebertia.com wrote: On Sat, May 2, 2009 at 7:13 PM, Ross ross.j...@gmail.com wrote: I'm trying to set up a simple filter using a list comprehension. If I have a list of tuples, a = [(1,2), (3,4), (5,None), (6,7), (8, None)] and I wanted to filter out all tuples containing None, I would like to get the new list b = [(1,2), (3,4),(6,7)]. b = [tup for tup in a if None not in tup] Cheers, Chris --http://blog.rebertia.com Thanks I feel retarded sometimes. -- http://mail.python.org/mailman/listinfo/python-list
Re: yet another list comprehension question
On May 2, 10:13 pm, Ross ross.j...@gmail.com wrote: I'm trying to set up a simple filter using a list comprehension. If I have a list of tuples, a = [(1,2), (3,4), (5,None), (6,7), (8, None)] and I wanted to filter out all tuples containing None, I would like to get the new list b = [(1,2), (3,4),(6,7)]. try this: b = [i for i in a if None not in i] I tried b = [i for i in a if t for t in i is not None] but I get the error that t is not defined. What am I doing wrong? You've got a for and an if backwards. t isn't defined when the if tries to evaluate it. -- http://mail.python.org/mailman/listinfo/python-list