How about using list comprehension? l1 = ["apples","apples","bananas","oranges","oranges","peaches"]
s1 = set([x for x in l1 if l1.count(x) > 1]) On Tue, Mar 18, 2008 at 4:56 PM, sturlamolden <[EMAIL PROTECTED]> wrote: > On 18 Mar, 22:25, sturlamolden <[EMAIL PROTECTED]> wrote: > > > def nonunique(lst): > > slst = sorted(lst) > > return list(set([s[0] for s in > > filter(lambda t : t[0] != t[1], zip(slst[:-1],slst[1:]))])) > > Obviously that should be 'lambda t : t[0] == t[1]'. Instead of using > the set function, there is more structure to exploit when the list is > sorted: > > > def nonunique(lst): > slst = sorted(lst) > dups = [s[0] for s in > filter(lambda t : t[0] == t[1], zip(slst[:-1],slst[1:]))] > return [dups[0]] + [s[1] for s in > filter(lambda t : t[0] != t[1], zip(dups[:-1],dups[1:]))] > > > > > > -- > http://mail.python.org/mailman/listinfo/python-list > -- | _ | * | _ | | _ | _ | * | | * | * | * |
-- http://mail.python.org/mailman/listinfo/python-list