Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
other:python:misc_by_jyp [2021/08/16 16:19] – [Useful python stuff] jypeter | other:python:misc_by_jyp [2021/08/25 10:12] – [Using ordered dictionaries] Added more details jypeter |
---|
==== 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> |
| |
/* | /* |