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

Reply via email to