[Tutor] Yet another list comprehension question

Andrei project5 at redrival.net
Sat Mar 3 16:43:00 CET 2007


>> Alternatively, you could put the results as keys in a dictionary, 
>> then request
>> mydict.keys() to get a list of unique outcomes.
> 
> I thought of that too, but couldn't think how to do it in a list
> comprehension. It seemed like it should be possible but I
> couldn't think of how - and didn't have a python interpreter
> handy...

I wouldn't do it in a list comprehension - I took a bit of liberty with 
the topic and looked more at the actual problem :). Of course the loop 
can be turned into a list comprehension, but it serves no purpose 
whatsoever:

 >>> d = {}
 >>> [d.__setitem__(s, '') for s in myiterator]

By the way, the fromkeys method of the dict type can turn this into a 
oneliner:

 >>> mylist = [1,2,3,1,2,4] # may also be some iterator
 >>> print dict.fromkeys(mylist).keys()
... [1,2,3,4]

The set solution is the Most Obvious Way to do it, but the dict one 
doesn't require an understanding of list comprehensions.

-- 
Yours,

Andrei

=====
Mail address in header catches spam. Real contact info:
''.join([''.join(s) for s in zip(
"poet at aao.l pmfe!Pes ontuei ulcpss  edtels,s hr' one oC.",
"rjc5wndon.Sa-re laed o s npbi ot.Ira h it oteesn edt C")])



More information about the Tutor mailing list