כמו שאמר פרסאוס השורה מבצעת מיון. כשעושים מיון צריך לדעת איך להשוות שני איברים ולדעת מי כגול ממי.
במערך של מספרים ההשוואה היא לפי הערך עצמו של האיבר. אבל לא כל שני איברים הם ברי השוואת של "גדול מ".
כשמווים שני dict מתקבלת הגיאה הבאה: "TypeError: unorderable types: dict() > dict()". כלומר dict אחד לא גדול מהשני או קטן ממנו. האמת היא שאין לי הסבר טבעי במוח שמסביר לי מה הפירוש ש-DICT אחד גדול ממשנהו.
כשמשווים שני רשימות או שני tuple ההשוואה היא לקסיגורפית. כלומר נבדק דבר ראשון האיבר הראשון ב-LIST, אם אחד גדול מהשני אז נקבע הגודל ואם הם שווים ממשיכים לאיבר השני וכך הלאה. אבל זה לא בהכרח מה שרצינו שיקרה. בדוגמה שיש לך, הם רוצים שיוגדר המיון לפי האיבר הראשון ב-TUPLE ולהתעלם מההמשך.
כאשר אין הגדרת השוואה דיפולטיבית או כשאנחנו רוצים לשנות את ההתנהגות הדיפולטיבית, אנחנו צריכים להגיד לפונקציה sort איך להשוות את האיברים שבמערך ולדעת האם איבר A גדול מאיבר B או להיפך. אנחנו צריכים לתת לפונקציה SORT פונקציה אחרת שמקבלת את האיבר שבמערך ומחיזרה איבר לפיו אנחנו רוצים שיתבצע המיון.
הפרמטר "lambda pair: pair[1]" הינו פוקנציה שמקבלת איבר ומחיזרה את האיבר הראשון שב-list/tuple. זה שקול לכתוב פוקנציה עם שם ולהעביר את שם הפונקציה כפרמטר.