[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