https://python.plainenglish.io/how-to-get-n-largest-or-smallest-elements-in-a-list-in-python-62940eb9ff3e