{"id":1665,"date":"2025-09-30T22:41:55","date_gmt":"2025-09-30T15:41:55","guid":{"rendered":"https:\/\/kienthucmo.com\/?p=1665"},"modified":"2025-11-05T23:45:28","modified_gmt":"2025-11-05T16:45:28","slug":"sap-xep-phan-tu-trong-dictionary-voi-python","status":"publish","type":"post","link":"https:\/\/kienthucmo.com\/vi\/sap-xep-phan-tu-trong-dictionary-voi-python\/","title":{"rendered":"S\u1eafp x\u1ebfp c\u00e1c ph\u1ea7n t\u1eed trong Dictionary v\u1edbi Python"},"content":{"rendered":"\n<p>Dictionary (t\u1eeb \u0111i\u1ec3n) l\u00e0 m\u1ed9t trong nh\u1eefng c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u01a1 b\u1ea3n v\u00e0 c\u1ef1c k\u1ef3 h\u1eefu \u00edch trong Python \u2014 l\u01b0u tr\u1eef d\u1eef li\u1ec7u theo c\u1eb7p <code>key: value<\/code>, tra c\u1ee9u nhanh theo key v\u00e0 r\u1ea5t thu\u1eadn ti\u1ec7n \u0111\u1ec3 bi\u1ec3u di\u1ec5n c\u00e1c b\u1ea3ng tra c\u1ee9u, c\u1ea5u h\u00ecnh, th\u1ed1ng k\u00ea&#8230; T\u1eeb Python 3.7 tr\u1edf \u0111i, <code>dict<\/code> gi\u1eef th\u1ee9 t\u1ef1 ch\u00e8n (insertion order), nh\u01b0ng <strong>vi\u1ec7c s\u1eafp x\u1ebfp theo m\u1ed9t ti\u00eau ch\u00ed c\u1ee5 th\u1ec3 (theo key, theo value, theo nhi\u1ec1u ti\u00eau ch\u00ed, ho\u1eb7c theo gi\u00e1 tr\u1ecb trong dictionary l\u1ed3ng nhau)<\/strong> v\u1eabn l\u00e0 nhu c\u1ea7u r\u1ea5t th\u01b0\u1eddng g\u1eb7p khi m\u00ecnh c\u1ea7n hi\u1ec3n th\u1ecb d\u1eef li\u1ec7u g\u1ecdn g\u00e0ng, x\u1ebfp h\u1ea1ng, l\u1ea5y top N, ho\u1eb7c xu\u1ea5t b\u00e1o c\u00e1o.<\/p>\n\n\n\n<p>Trong b\u00e0i vi\u1ebft n\u00e0y, h\u00e3y c\u00f9ng m\u00ecnh hi\u1ec3u nh\u1eefng c\u00e1ch s\u1eafp x\u1ebfp <strong>dictionary <\/strong>, so s\u00e1nh hi\u1ec7u n\u0103ng, c\u0169ng nh\u01b0 nh\u1eefng tr\u01b0\u1eddng h\u1ee3p \u00e1p d\u1ee5ng. B\u1eaft \u0111\u1ea7u th\u00f4i n\u00e0o&#8230;!!!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Khi n\u00e0o c\u1ea7n s\u1eafp x\u1ebfp <code>dict<\/code><\/h2>\n\n\n\n<p>M\u00ecnh t\u00f3m t\u1eaft m\u1ed9t v\u00e0i t\u00ecnh hu\u1ed1ng th\u1ef1c t\u1ebf:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hi\u1ec3n th\u1ecb cho ng\u01b0\u1eddi d\u00f9ng<\/strong>: danh b\u1ea1, b\u1ea3ng b\u00e1o c\u00e1o t\u00e0i ch\u00ednh, b\u1ea3ng th\u1ed1ng k\u00ea \u2014 tr\u00ecnh t\u1ef1 theo t\u00ean, theo m\u00e3, ho\u1eb7c theo gi\u00e1 tr\u1ecb (v\u00ed d\u1ee5: doanh thu).<\/li>\n\n\n\n<li><strong>X\u1ebfp h\u1ea1ng \/ top N<\/strong>: v\u00ed d\u1ee5 th\u1ed1ng k\u00ea view c\u1ee7a c\u00e1c trang, m\u00ecnh mu\u1ed1n top 5 trang \u0111\u01b0\u1ee3c xem nhi\u1ec1u nh\u1ea5t.<\/li>\n\n\n\n<li><strong>So s\u00e1nh \/ \u0111\u1ed3ng b\u1ed9 d\u1eef li\u1ec7u<\/strong>: khi c\u1ea7n so s\u00e1nh hai ngu\u1ed3n, s\u1eafp x\u1ebfp gi\u00fap so s\u00e1nh d\u1ec5 \u0111\u1ecdc.<\/li>\n\n\n\n<li><strong>D\u1eef li\u1ec7u l\u1ed3ng nhau<\/strong>: mu\u1ed1n s\u1eafp x\u1ebfp theo m\u1ed9t thu\u1ed9c t\u00ednh trong gi\u00e1 tr\u1ecb (v\u00ed d\u1ee5: <code>student['score']<\/code>).<\/li>\n\n\n\n<li><strong>Xu\u1ea5t file c\u00f3 th\u1ee9 t\u1ef1 c\u1ed1 \u0111\u1ecbnh<\/strong>: CSV\/JSON c\u1ea7n th\u1ee9 t\u1ef1 nh\u1ea5t \u0111\u1ecbnh cho ng\u01b0\u1eddi \u0111\u1ecdc.<\/li>\n<\/ul>\n\n\n\n<p>N\u1ebfu kh\u00f4ng thu\u1ed9c nh\u1eefng tr\u01b0\u1eddng h\u1ee3p tr\u00ean, vi\u1ec7c gi\u1eef insertion order (m\u1eb7c \u0111\u1ecbnh) c\u00f3 th\u1ec3 \u0111\u00e3 \u0111\u1ee7. Nh\u01b0ng th\u1ef1c t\u1ebf \u1ee9ng d\u1ee5ng th\u01b0\u1eddng r\u01a1i v\u00e0o nh\u1eefng t\u00ecnh hu\u1ed1ng m\u00ecnh li\u1ec7t k\u00ea.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Dictionary trong Python v\u00e0 \u0111\u1eb7c \u0111i\u1ec3m c\u1ea7n l\u01b0u \u00fd<\/h2>\n\n\n\n<p>M\u1ed9t s\u1ed1 \u0111i\u1ec3m c\u1ea7n nh\u1edb tr\u01b0\u1edbc khi s\u1eafp x\u1ebfp:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>dict<\/code> l\u00e0 c\u1ea5u tr\u00fac key \u2192 value; <strong>key ph\u1ea3i l\u00e0 immutable<\/strong> (v\u00ed d\u1ee5: str, int, tuple).<\/li>\n\n\n\n<li>Python 3.7+ <strong>gi\u1eef th\u1ee9 t\u1ef1 ch\u00e8n<\/strong>, nh\u01b0ng \u0111\u00f3 kh\u00f4ng ph\u1ea3i l\u00e0 \u201cs\u1eafp x\u1ebfp\u201d; n\u00f3 ch\u1ec9 gi\u1eef th\u1ee9 t\u1ef1 b\u1ea1n th\u00eam ph\u1ea7n t\u1eed.<\/li>\n\n\n\n<li><code>sorted()<\/code> lu\u00f4n tr\u1ea3 v\u1ec1 <strong>m\u1ed9t danh s\u00e1ch<\/strong> (list) \u2014 th\u01b0\u1eddng l\u00e0 list c\u00e1c tuple <code>(key, value)<\/code>. N\u1ebfu mu\u1ed1n dict \u0111\u00e3 s\u1eafp x\u1ebfp, c\u1ea7n chuy\u1ec3n l\u1ea1i b\u1eb1ng <code>dict()<\/code> ho\u1eb7c <code>collections.OrderedDict<\/code> (cho t\u01b0\u01a1ng th\u00edch ng\u01b0\u1ee3c).<\/li>\n\n\n\n<li>Vi\u1ec7c s\u1eafp x\u1ebfp t\u1ed1n O(n log n) (Timsort), n\u00ean c\u00e2n nh\u1eafc tr\u00ean d\u1eef li\u1ec7u l\u1edbn.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">3. C\u00e1c ph\u01b0\u01a1ng ph\u00e1p c\u01a1 b\u1ea3n \u0111\u1ec3 s\u1eafp x\u1ebfp Dictionary<\/h2>\n\n\n\n<p>C\u0103n b\u1ea3n nh\u1ea5t l\u00e0 d\u00f9ng <code>sorted()<\/code> tr\u00ean <code>dict.items()<\/code>.<\/p>\n\n\n\n<p>V\u00ed d\u1ee5 c\u01a1 b\u1ea3n \u2014 s\u1eafp x\u1ebfp <code>students<\/code> theo t\u00ean (m\u1eb7c \u0111\u1ecbnh <code>sorted()<\/code> tr\u00ean items s\u1ebd so s\u00e1nh theo key tr\u01b0\u1edbc):<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Example: basic sorted usage\nstudents = {\"Alice\": 7, \"Bob\": 9, \"Charlie\": 8}\n# Get a list of (key, value) tuples sorted by key (name)\nsorted_items = sorted(students.items())\n# sorted_items -> &#91;('Alice', 7), ('Bob', 9), ('Charlie', 8)&#93;\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># Example: basic sorted usage<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">students <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Alice<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">7<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Bob<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">9<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Charlie<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">8<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Get a list of (key, value) tuples sorted by key (name)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">sorted_items <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">sorted<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">students<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">())<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># sorted_items -&gt; &#91;(&#39;Alice&#39;, 7), (&#39;Bob&#39;, 9), (&#39;Charlie&#39;, 8)&#93;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Gi\u1ea3i th\u00edch: <code>sorted(students.items())<\/code> tr\u1ea3 v\u1ec1 list c\u00e1c tuple s\u1eafp x\u1ebfp theo ph\u1ea7n t\u1eed \u0111\u1ea7u (key) n\u1ebfu kh\u00f4ng cung c\u1ea5p <code>key=<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. S\u1eafp x\u1ebfp Dictionary theo key<\/h2>\n\n\n\n<p>C\u00f3 v\u00e0i c\u00e1ch ph\u1ed5 bi\u1ebfn:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L\u1ea5y danh s\u00e1ch key \u0111\u00e3 s\u1eafp x\u1ebfp: <code>sorted(dict.keys())<\/code><\/li>\n\n\n\n<li>T\u1ea1o dict m\u1edbi theo th\u1ee9 t\u1ef1 key: <code>dict(sorted(d.items()))<\/code> ho\u1eb7c dict comprehension.<\/li>\n<\/ul>\n\n\n\n<p>V\u00ed d\u1ee5: s\u1eafp x\u1ebfp danh b\u1ea1 theo t\u00ean (key):<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Sort dict by keys and convert back to dict\nphonebook = {\"Nam\": \"0123\", \"An\": \"0456\", \"Binh\": \"0789\"}\n# Create a new dict with items sorted by key\nsorted_phonebook = dict(sorted(phonebook.items()))\n# sorted_phonebook -> {'An': '0456', 'Binh': '0789', 'Nam': '0123'}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># Sort dict by keys and convert back to dict<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">phonebook <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Nam<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">0123<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">An<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">0456<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Binh<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">0789<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Create a new dict with items sorted by key<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">sorted_phonebook <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">dict<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">sorted<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">phonebook<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">()))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># sorted_phonebook -&gt; {&#39;An&#39;: &#39;0456&#39;, &#39;Binh&#39;: &#39;0789&#39;, &#39;Nam&#39;: &#39;0123&#39;}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>L\u01b0u \u00fd: n\u1ebfu mu\u1ed1n <strong>case-insensitive<\/strong> (kh\u00f4ng ph\u00e2n bi\u1ec7t hoa\/th\u01b0\u1eddng), d\u00f9ng <code>key=str.lower<\/code> khi s\u1eafp x\u1ebfp keys:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Case-insensitive key sort&lt;br>names = {\"ann\": 1, \"Bob\": 2, \"alice\": 3}&lt;br>sorted_by_case_insensitive = dict(sorted(names.items(), key=lambda x: x&#91;0&#93;.lower()))<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># Case-insensitive key sort&lt;br&gt;names = {&quot;ann&quot;: 1, &quot;Bob&quot;: 2, &quot;alice&quot;: 3}&lt;br&gt;sorted_by_case_insensitive = dict(sorted(names.items(), key=lambda x: x&#91;0&#93;.lower()))<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">5. S\u1eafp x\u1ebfp Dictionary theo value<\/h2>\n\n\n\n<p>Khi c\u1ea7n x\u1ebfp theo gi\u00e1 tr\u1ecb (value), ta th\u01b0\u1eddng d\u00f9ng <code>key=lambda x: x[1]<\/code>.<\/p>\n\n\n\n<p>V\u00ed d\u1ee5: s\u1eafp x\u1ebfp s\u1ea3n ph\u1ea9m theo gi\u00e1 t\u0103ng d\u1ea7n:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Sort dict by values (product price)\nproducts = {\"apple\": 3.5, \"banana\": 1.2, \"cherry\": 4.0}\n# Sorted list of tuples by value (price)\nsorted_by_price = sorted(products.items(), key=lambda item: item&#91;1&#93;)\n# Convert back to dict if needed\nsorted_products = dict(sorted_by_price)\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># Sort dict by values (product price)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">products <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">apple<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3.5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">banana<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1.2<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">cherry<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4.0<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Sorted list of tuples by value (price)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">sorted_by_price <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">sorted<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">products<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">(),<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #81A1C1\">=lambda<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">item<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> item<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Convert back to dict if needed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">sorted_products <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">dict<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">sorted_by_price<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0110\u1ec3 s\u1eafp x\u1ebfp gi\u1ea3m d\u1ea7n (price t\u1eeb cao xu\u1ed1ng th\u1ea5p) d\u00f9ng <code>reverse=True<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Descending order\nsorted_desc = dict(sorted(products.items(), key=lambda item: item&#91;1&#93;, reverse=True))\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># Descending order<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">sorted_desc <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">dict<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">sorted<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">products<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">(),<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #81A1C1\">=lambda<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">item<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> item<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">&#93;,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">reverse<\/span><span style=\"color: #81A1C1\">=True<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>L\u1ea5y <strong>top N<\/strong> gi\u00e1 tr\u1ecb:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Get top 2 products by price\ntop2 = sorted(products.items(), key=lambda i: i&#91;1&#93;, reverse=True)&#91;:2&#93;\n# top2 is a list of tuples\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># Get top 2 products by price<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">top2 <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">sorted<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">products<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">(),<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #81A1C1\">=lambda<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">i<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> i<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">&#93;,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">reverse<\/span><span style=\"color: #81A1C1\">=True<\/span><span style=\"color: #ECEFF4\">)&#91;:<\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># top2 is a list of tuples<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Gi\u1ea3i th\u00edch: <code>item[1]<\/code> ch\u00ednh l\u00e0 gi\u00e1 tr\u1ecb c\u1ee7a m\u1ed7i c\u1eb7p <code>(key, value)<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. S\u1eed d\u1ee5ng <code>operator.itemgetter<\/code> v\u00e0 so s\u00e1nh v\u1edbi <code>lambda<\/code><\/h2>\n\n\n\n<p><code>operator.itemgetter<\/code> th\u01b0\u1eddng ng\u1eafn g\u1ecdn v\u00e0 c\u00f3 th\u1ec3 nhanh h\u01a1n <code>lambda<\/code> ch\u00fat \u00edt:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>from operator import itemgetter\n\n# Use itemgetter to sort by value (index 1)\nsorted_products = dict(sorted(products.items(), key=itemgetter(1)))\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> operator <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> itemgetter<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Use itemgetter to sort by value (index 1)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">sorted_products <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">dict<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">sorted<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">products<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">(),<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">itemgetter<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">)))<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>So s\u00e1nh:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>lambda<\/code> r\u1ea5t r\u00f5 r\u00e0ng v\u00e0 linh ho\u1ea1t (c\u00f3 th\u1ec3 x\u1eed l\u00fd logic ph\u1ee9c t\u1ea1p).<\/li>\n\n\n\n<li><code>itemgetter<\/code> ng\u1eafn g\u1ecdn v\u00e0 \u0111\u00f4i khi c\u00f3 hi\u1ec7u n\u0103ng t\u1ed1t h\u01a1n cho tr\u01b0\u1eddng h\u1ee3p truy c\u1eadp ch\u1ec9 m\u1ee5c \u0111\u01a1n gi\u1ea3n.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">7. S\u1eafp x\u1ebfp nhi\u1ec1u ti\u00eau ch\u00ed (multi-criteria)<\/h2>\n\n\n\n<p>Khi nhi\u1ec1u ph\u1ea7n t\u1eed c\u00f3 c\u00f9ng value, b\u1ea1n c\u00f3 th\u1ec3 s\u1eafp x\u1ebfp ti\u1ebfp theo key ho\u1eb7c theo ti\u00eau ch\u00ed ph\u1ee5 b\u1eb1ng tuple trong <code>key<\/code>.<\/p>\n\n\n\n<p>V\u00ed d\u1ee5: s\u1eafp x\u1ebfp s\u1ea3n ph\u1ea9m theo gi\u00e1 t\u0103ng d\u1ea7n, n\u1ebfu gi\u00e1 b\u1eb1ng th\u00ec theo t\u00ean:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>products = {\"apple\": 3.5, \"apricot\": 3.5, \"banana\": 1.2}\n# Sort by (price, name)\nsorted_multi = dict(sorted(products.items(), key=lambda item: (item&#91;1&#93;, item&#91;0&#93;)))\n# Result: banana (1.2), apple (3.5), apricot (3.5 but 'apple' &lt; 'apricot')\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">products <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">apple<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3.5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">apricot<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3.5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">banana<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1.2<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Sort by (price, name)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">sorted_multi <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">dict<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">sorted<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">products<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">(),<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #81A1C1\">=lambda<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">item<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">item<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">&#93;,<\/span><span style=\"color: #D8DEE9FF\"> item<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">&#93;)))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Result: banana (1.2), apple (3.5), apricot (3.5 but &#39;apple&#39; &lt; &#39;apricot&#39;)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Gi\u1ea3i th\u00edch: <code>key=lambda item: (item[1], item[0])<\/code> t\u1ea1o tuple <code>(price, name)<\/code> \u0111\u1ec3 s\u1eafp x\u1ebfp theo th\u1ee9 t\u1ef1 \u01b0u ti\u00ean.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8. Gi\u1eef nguy\u00ean Dictionary sau khi s\u1eafp x\u1ebfp<\/h2>\n\n\n\n<p><code>sorted()<\/code> tr\u1ea3 v\u1ec1 list, n\u00ean n\u1ebfu b\u1ea1n c\u1ea7n <strong>dict<\/strong> \u0111\u00e3 s\u1eafp x\u1ebfp, c\u00f3 c\u00e1c c\u00e1ch:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>D\u00f9ng <code>dict(sorted(...))<\/code> \u2014 tr\u00ean Python 3.7+ dict s\u1ebd gi\u1eef th\u1ee9 t\u1ef1 insertion.<\/li>\n\n\n\n<li>D\u00f9ng <code>collections.OrderedDict<\/code> n\u1ebfu c\u1ea7n t\u01b0\u01a1ng th\u00edch Python c\u0169 h\u01a1n ho\u1eb7c mu\u1ed1n bi\u1ec3u \u0111\u1ea1t r\u00f5 r\u00e0ng.<\/li>\n<\/ul>\n\n\n\n<p>V\u00ed d\u1ee5 v\u1edbi <code>OrderedDict<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>from collections import OrderedDict\n\nsorted_items = sorted(products.items(), key=lambda x: x&#91;1&#93;)\nordered = OrderedDict(sorted_items)\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> collections <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> OrderedDict<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">sorted_items <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">sorted<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">products<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">(),<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #81A1C1\">=lambda<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">x<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> x<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">ordered <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">OrderedDict<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">sorted_items<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>L\u01b0u \u00fd: <code>OrderedDict<\/code> cung c\u1ea5p th\u00eam m\u1ed9t v\u00e0i ph\u01b0\u01a1ng th\u1ee9c \u0111\u1eb7c tr\u01b0ng (v\u00ed d\u1ee5 <code>move_to_end<\/code>) nh\u01b0ng v\u1edbi Python hi\u1ec7n \u0111\u1ea1i, <code>dict<\/code> th\u01b0\u1eddng \u0111\u00e3 \u0111\u1ee7 cho nhi\u1ec1u t\u00ecnh hu\u1ed1ng.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">9. S\u1eafp x\u1ebfp Dictionary l\u1ed3ng nhau (Nested Dictionary)<\/h2>\n\n\n\n<p>Khi value l\u00e0 m\u1ed9t dict kh\u00e1c, ta tr\u1ecf v\u00e0o thu\u1ed9c t\u00ednh b\u00ean trong:<\/p>\n\n\n\n<p>V\u00ed d\u1ee5: d\u1eef li\u1ec7u sinh vi\u00ean:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>students = {\n    \"s1\": {\"name\": \"An\", \"score\": 8, \"age\": 20},\n    \"s2\": {\"name\": \"Binh\", \"score\": 8, \"age\": 19},\n    \"s3\": {\"name\": \"Nam\", \"score\": 7, \"age\": 21}\n}\n# Sort by score descending, then by age ascending\nsorted_students = dict(sorted(\n    students.items(),\n    key=lambda item: (-item&#91;1&#93;&#91;'score'&#93;, item&#91;1&#93;&#91;'age'&#93;)\n))\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">students <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">s1<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">name<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">An<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">score<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">8<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">age<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">s2<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">name<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Binh<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">score<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">8<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">age<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">19<\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">s3<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">name<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Nam<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">score<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">7<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">age<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">21<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Sort by score descending, then by age ascending<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">sorted_students <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">dict<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">sorted<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    students<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #81A1C1\">=lambda<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">item<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">item<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">&#93;&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">score<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;,<\/span><span style=\"color: #D8DEE9FF\"> item<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">&#93;&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">age<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Gi\u1ea3i th\u00edch chi ti\u1ebft:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>item<\/code> l\u00e0 tuple <code>(student_id, student_dict)<\/code>.<\/li>\n\n\n\n<li><code>-item[1]['score']<\/code> s\u1eafp x\u1ebfp <code>score<\/code> gi\u1ea3m d\u1ea7n (d\u00f9ng d\u1ea5u \u00e2m).<\/li>\n\n\n\n<li><code>item[1]['age']<\/code> l\u00e0 ti\u00eau ch\u00ed ph\u1ee5: n\u1ebfu \u0111i\u1ec3m b\u1eb1ng th\u00ec h\u1ecdc sinh tr\u1ebb h\u01a1n l\u00ean tr\u00ean.<\/li>\n<\/ul>\n\n\n\n<p>L\u01b0u \u00fd: c\u1ea7n ki\u1ec3m tra t\u1ed3n t\u1ea1i kh\u00f3a tr\u01b0\u1edbc khi truy c\u1eadp \u0111\u1ec3 tr\u00e1nh KeyError n\u1ebfu d\u1eef li\u1ec7u kh\u00f4ng \u0111\u1ed3ng \u0111\u1ec1u.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">10. So s\u00e1nh hi\u1ec7u n\u0103ng v\u00e0 l\u01b0u \u00fd khi d\u1eef li\u1ec7u l\u1edbn<\/h2>\n\n\n\n<p>M\u1ed9t v\u00e0i l\u01b0u \u00fd hi\u1ec7u n\u0103ng:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>sorted()<\/code> (Timsort) l\u00e0 O(n log n). V\u1edbi dataset v\u00e0i tri\u1ec7u ph\u1ea7n t\u1eed, s\u1eafp x\u1ebfp to\u00e0n b\u1ed9 c\u00f3 th\u1ec3 t\u1ed1n t\u00e0i nguy\u00ean.<\/li>\n\n\n\n<li>N\u1ebfu ch\u1ec9 c\u1ea7n <strong>top N<\/strong>, d\u00f9ng <code>heapq.nlargest()<\/code> ho\u1eb7c <code>heapq.nsmallest()<\/code> \u0111\u1ec3 t\u1ed1t h\u01a1n v\u1ec1 m\u1eb7t b\u1ed9 nh\u1edb\/hi\u1ec7u n\u0103ng:<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import heapq\n# Get top 3 products by price\ntop3 = heapq.nlargest(3, products.items(), key=lambda x: x&#91;1&#93;)\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> heapq<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Get top 3 products by price<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">top3 <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> heapq<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">nlargest<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> products<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">(),<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #81A1C1\">=lambda<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">x<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> x<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tr\u00e1nh s\u1eafp x\u1ebfp nhi\u1ec1u l\u1ea7n trong v\u00f2ng l\u1eb7p \u2014 n\u1ebfu c\u1ea7n nhi\u1ec1u d\u1ea1ng s\u1eafp x\u1ebfp, c\u00e2n nh\u1eafc l\u01b0u k\u1ebft qu\u1ea3 trung gian.<\/li>\n\n\n\n<li>N\u1ebfu d\u1eef li\u1ec7u r\u1ea5t l\u1edbn v\u00e0 ph\u1ee9c t\u1ea1p, c\u00e2n nh\u1eafc d\u00f9ng <strong>Pandas<\/strong>, c\u01a1 s\u1edf d\u1eef li\u1ec7u (SQL) ho\u1eb7c c\u00f4ng c\u1ee5 ph\u00e2n t\u00edch d\u1eef li\u1ec7u kh\u00e1c \u0111\u1ec3 x\u1eed l\u00fd tr\u01b0\u1edbc khi load v\u00e0o Python.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">11. K\u1ebft lu\u1eadn<\/h2>\n\n\n\n<p>Qua b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh \u0111\u00e3 c\u00f9ng b\u1ea1n \u0111i t\u1eeb nh\u1eefng k\u1ef9 thu\u1eadt s\u1eafp x\u1ebfp c\u01a1 b\u1ea3n cho <code>dict<\/code> trong Python cho \u0111\u1ebfn c\u00e1c t\u00ecnh hu\u1ed1ng n\u00e2ng cao nh\u01b0 s\u1eafp x\u1ebfp nhi\u1ec1u ti\u00eau ch\u00ed hay x\u1eed l\u00fd dictionary l\u1ed3ng nhau. C\u00f3 th\u1ec3 th\u1ea5y r\u1eb1ng, vi\u1ec7c l\u1ef1a ch\u1ecdn ph\u01b0\u01a1ng ph\u00e1p ph\u00f9 h\u1ee3p ph\u1ee5 thu\u1ed9c r\u1ea5t nhi\u1ec1u v\u00e0o m\u1ee5c \u0111\u00edch th\u1ef1c t\u1ebf: \u0111\u00f4i khi ch\u1ec9 c\u1ea7n s\u1eafp x\u1ebfp theo key \u0111\u1ec3 hi\u1ec3n th\u1ecb g\u1ecdn g\u00e0ng, nh\u01b0ng c\u0169ng c\u00f3 l\u00fac ph\u1ea3i x\u1ebfp h\u1ea1ng theo value ho\u1eb7c t\u00ecm top N ph\u1ea7n t\u1eed cho b\u00e1o c\u00e1o.<\/p>\n\n\n\n<p>\u0110i\u1ec1u quan tr\u1ecdng l\u00e0 b\u1ea1n hi\u1ec3u r\u00f5 c\u00f4ng c\u1ee5 m\u00ecnh c\u00f3: t\u1eeb <code>sorted()<\/code> v\u1edbi <code>lambda<\/code>\/<code>itemgetter<\/code>, \u0111\u1ebfn <code>OrderedDict<\/code>, hay th\u1eadm ch\u00ed <code>heapq<\/code> khi d\u1eef li\u1ec7u qu\u00e1 l\u1edbn. N\u1eafm v\u1eefng nh\u1eefng c\u00e1ch n\u00e0y s\u1ebd gi\u00fap b\u1ea1n linh ho\u1ea1t h\u01a1n trong vi\u1ec7c x\u1eed l\u00fd d\u1eef li\u1ec7u, \u0111\u1ed3ng th\u1eddi vi\u1ebft code r\u00f5 r\u00e0ng, d\u1ec5 b\u1ea3o tr\u00ec.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">12. T\u00e0i li\u1ec7u tham kh\u1ea3o<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Python Software Foundation. (n.d.). <em>Built-in Functions \u2014 sorted()<\/em>. In <em>Python Documentation<\/em>. Retrieved September 30, 2025, from <a>https:\/\/docs.python.org\/3\/library\/functions.html#sorted<\/a><\/li>\n\n\n\n<li>Python Software Foundation. (n.d.). <em>Data Structures \u2014 Dictionaries<\/em>. In <em>Python Tutorial<\/em>. Retrieved September 30, 2025, from <a>https:\/\/docs.python.org\/3\/tutorial\/datastructures.html<\/a><\/li>\n\n\n\n<li>Python Software Foundation. (n.d.). <em>Sorting HOW TO<\/em>. Retrieved September 30, 2025, from <a>https:\/\/docs.python.org\/3\/howto\/sorting.html<\/a><\/li>\n\n\n\n<li>Hetland, M. L. (2017). <em>Beginning Python: From Novice to Professional<\/em> (4th ed.). Apress.<\/li>\n\n\n\n<li>Python for Professionals: Learning Python as a Second Language: <a href=\"https:\/\/click.linksynergy.com\/link?id=*C\/UgjGtUZ8&amp;offerid=1562891.3721710002222624882405978&amp;type=15&amp;murl=https%3A%2F%2Fwww.kobo.com%2Fus%2Fen%2Febook%2Fpython-for-professionals-3\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kobo.com\/us\/en\/ebook\/python-for-professionals-3<\/a><\/li>\n\n\n\n<li>Python: Deeper Insights into Machine Learning: <a href=\"https:\/\/click.linksynergy.com\/link?id=*C\/UgjGtUZ8&amp;offerid=1562891.3721710015810095319857183&amp;type=15&amp;murl=https%3A%2F%2Fwww.kobo.com%2Fus%2Fen%2Febook%2Fpython-deeper-insights-into-machine-learning\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kobo.com\/us\/en\/ebook\/python-deeper-insights-into-machine-learning<\/a><\/li>\n\n\n\n<li>DataFusion Python Bindings in Practice: The Complete Guide for Developers and Engineers: <a href=\"https:\/\/click.linksynergy.com\/link?id=*C\/UgjGtUZ8&amp;offerid=1562891.3721710049093362364820452&amp;type=15&amp;murl=https%3A%2F%2Fwww.kobo.com%2Fus%2Fen%2Febook%2Fdatafusion-python-bindings-in-practice\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kobo.com\/us\/en\/ebook\/datafusion-python-bindings-in-practice<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Dictionary (t\u1eeb \u0111i\u1ec3n) l\u00e0 m\u1ed9t trong nh\u1eefng c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u01a1 b\u1ea3n v\u00e0 c\u1ef1c k\u1ef3&hellip;<\/p>\n","protected":false},"author":1,"featured_media":824,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"googlesitekit_rrm_CAowieHDDA:productID":"","footnotes":""},"categories":[41],"tags":[40],"class_list":["post-1665","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kien-thuc-lap-trinh","tag-python-co-ban"],"_links":{"self":[{"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1665","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/comments?post=1665"}],"version-history":[{"count":3,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1665\/revisions"}],"predecessor-version":[{"id":2469,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1665\/revisions\/2469"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/media\/824"}],"wp:attachment":[{"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/media?parent=1665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/categories?post=1665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/tags?post=1665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}