[Tutor] Aschenputtel problem
bob
bgailer at alum.rpi.edu
Thu Sep 15 20:47:42 CEST 2005
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
More information about the Tutor
mailing list