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 _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor