At 10:12 AM 9/15/2005, Christopher Arndt wrote:
Hi,

I wonder if there is a shorter form of the following idiom:

list1 = []
list2 = []
for item in original_list:
    if condition(item):
        list1.append(item)
    else:
        list2.append(item)

Consider (5 lines instead of 7):

lists = [[], []]
for item in original_list: 
    lists[condition(item)].append(item)
list1 = lists[0]
list2 = lists[1]

This assumes condition() returns 0 or 1 (True)

or if you don't mind the result in sets (assumes unique elements):

set1 = set([x for x in original_list if cond(x)])
set2 = original_list - set1

I can't send mail my usual way due to unknown problems. So am using gmail. Please relpy as always to [EMAIL PROTECTED]
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to