Extracting a discrete set of values
Today's I love Python moment is bought to you by set types.
I have a file, XML naturally, the contains a series of transactions. Each transaction has a reference number, but the reference number may be repeated. I want to pull the distinct set of reference numbers from this file. The way I learnt to build up a discrete set of items (many years ago) was to use a dict and set default.
>>> ref_nos = {} >>> for record in records: >>> ref_nos.setdefault(record.key, 1) >>> ref_nos.keys()
But Python has had a sets module since 2.3 and the set standard data type since 2.6 so my knowledge is woefully out of date. The latest way to get the unique values from a sequence looks something like this;
>>> ref_nos = set([record.key for record in records])
I think I should get bonus points for using a list comprehension as well.