Alan Gauld schreef: >>I wonder if there is a shorter form of the following idiom: > > > Bearing in mind that shorter is not necessarily better... > > [condition(i) and list1.append(i) or list2.append(i) for i in > original]
Alas, won't work. This is one of the cases where the ... and ... or ... idiom doesn't work; this is why I don't like it and don't use it. The problem is that list1.append(i) returns None, so list2.append(i) is always called, even if list1.append(i) was already called: >>> list1 = [] >>> list2 = [] >>> False and list1.append(2) or list2.append(2) >>> list1, list2 ([], [2]) >>> True and list1.append(4) or list2.append(4) >>> list1, list2 ([4], [2, 4]) -- If I have been able to see further, it was only because I stood on the shoulders of giants. -- Isaac Newton Roel Schroeven _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor