This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
other:python:misc_by_jyp [2021/08/16 14:19] jypeter [Useful python stuff] |
other:python:misc_by_jyp [2021/08/25 08:12] jypeter [Using ordered dictionaries] Added more details |
||
---|---|---|---|
Line 110: | Line 110: | ||
==== Using ordered dictionaries ==== | ==== Using ordered dictionaries ==== | ||
- | Check the [[https://realpython.com/python-ordereddict/|OrderedDict vs dict in Python: The Right Tool for the Job]] tutorial | + | **Dictionary order is guaranteed to be insertion order**! Note that the [[https://docs.python.org/3/library/stdtypes.html#dict|usual Python dictionary]] also guarantees the order since version **3.6** |
+ | |||
+ | Check the [[https://docs.python.org/3/library/collections.html#collections.OrderedDict|OrderedDict class]] (''from collections import OrderedDict'') and the [[https://realpython.com/python-ordereddict/|OrderedDict vs dict in Python: The Right Tool for the Job]] tutorial | ||
+ | |||
+ | ==== Printing a readable version of long lists or dictionaries ==== | ||
+ | |||
+ | The [[https://docs.python.org/3/library/pprint.html|pprint]] module can be used for //pretty printing// objects (lists, dictionaries, ...). It will wrap long lines in a meaningful way | ||
+ | |||
+ | <code>>>> from collections import OrderedDict | ||
+ | |||
+ | >>> test_dic = OrderedDict([('AWI-ESM-1-1-LR_AWI', {'r1i1p1f1': {'grid': 'gn'}}), ('CESM2_NCAR', {'r1i1p1f1': {'grid': 'gn'}}), ('IPSL-CM6A-LR_IPSL', {'r1i1p1f1': {'grid': 'gr'}, 'r1i1p1f2': {'grid': 'gr'}, 'r1i1p1f3': {'grid': 'gr'}, 'r1i1p1f4': {'grid': 'gr'}})]) | ||
+ | |||
+ | >>> print(test_dic) | ||
+ | OrderedDict([('AWI-ESM-1-1-LR_AWI', {'r1i1p1f1': {'grid': 'gn'}}), ('CESM2_NCAR', {'r1i1p1f1': {'grid': 'gn'}}), ('IPSL-CM6A-LR_IPSL', {'r1i1p1f1': {'grid': 'gr'}, 'r1i1p1f2': {'grid': 'gr'}, 'r1i1p1f3': {'grid': 'gr'}, 'r1i1p1f4': {'grid': 'gr'}})]) | ||
+ | |||
+ | >>> pprint.pprint(test_dic) | ||
+ | OrderedDict([('AWI-ESM-1-1-LR_AWI', {'r1i1p1f1': {'grid': 'gn'}}), | ||
+ | ('CESM2_NCAR', {'r1i1p1f1': {'grid': 'gn'}}), | ||
+ | ('IPSL-CM6A-LR_IPSL', | ||
+ | {'r1i1p1f1': {'grid': 'gr'}, | ||
+ | 'r1i1p1f2': {'grid': 'gr'}, | ||
+ | 'r1i1p1f3': {'grid': 'gr'}, | ||
+ | 'r1i1p1f4': {'grid': 'gr'}})]) | ||
+ | </code> | ||
/* | /* |