On 2013-12-08 15:04, Peter Otten wrote: > > data = dict( > > (str(date), {source: freq}) > > for date, freq, source in original_data > > ) > > or even just > > data = {str(date): {source: freq} > for date, freq, source in original_data}
I maintain enough pre-2.7 code that I tend to eschew dict-comprehensions for the time being. I like them as a language addition, but can't use them yet in most of the code-bases with which I work. To the OP, if you don't have to support pre-2.7 code, then this is a tidier way to go. > But do you really need a dict with a single key? And is it even > correct? If a date occurs twice only the last source:freq pair is > kept. Without knowing the context the humble > > data = {} > for date, freq, source in original_data: > source_to_freq = data.setdefault(date, {}) > if source in source_to_freq: > raise ValueError( > "Multiple frequencies for one source not supported") > source_to_freq[source] = freq > > appears so much more plausible... The OP's code didn't do any such sanity-checking so I made the assumption that the data came in clean. I know better than to trust incoming data (even my own) in my own code, but... (followup to the OP's reply elsewhere in the thread coming shortly) -tkc -- https://mail.python.org/mailman/listinfo/python-list