[Tutor] question about a list of lists

shawn bright nephish at gmail.com
Mon Jan 29 15:53:21 CET 2007


Thanks Kent,
   i am going with option A, the helper set, because i also need to count
the occurances and this seems to be the easiest solution.

thanks for your help.

shawn

On 1/28/07, Kent Johnson <kent37 at tds.net> wrote:
>
> shawn bright wrote:
> > lo there all.
> >
> > i have a list of lists that i want to build, only if an item is not in
> > the list already.
> >
> > kinda like this
> > new_list = []
> > for item in lists: # item will look something like [var1, var2, var3]
> >     if item[0] in new_list ( only the first element of each list ) like
> > new_list[0][0]
> >
> > basicly, i want to know if item[0]   is one of the items[0] in my
> new_list
> >
> > whats a good pythonic way to do this? i mean, i have a couple of way to
> > do this, but they are ugly.
>
> One way to do this is to keep a helper set that contains the first
> elements of each list. Something like
> new_list = []
> firsts = set()
> for item in lists:
>    if item[0] not in firsts:
>      new_list.append(item)
>      firsts.add(item[0]
>
> If you don't care about the order of the result, and if two lists have
> duplicate first items you are happy to use the first, then you could use
> a dict mapping first item to list:
>
> new_list = dict((item[0], item) for item in lists).values()
>
> Kent
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20070129/db94acc0/attachment.htm 


More information about the Tutor mailing list