{"id":1671,"date":"2025-09-30T23:05:51","date_gmt":"2025-09-30T16:05:51","guid":{"rendered":"https:\/\/kienthucmo.com\/?p=1671"},"modified":"2025-11-05T23:46:21","modified_gmt":"2025-11-05T16:46:21","slug":"tong-hop-cac-ham-xu-ly-dictionary-voi-python","status":"publish","type":"post","link":"https:\/\/kienthucmo.com\/vi\/tong-hop-cac-ham-xu-ly-dictionary-voi-python\/","title":{"rendered":"T\u1ed5ng h\u1ee3p c\u00e1c h\u00e0m x\u1eed l\u00fd Dictionary v\u1edbi Python"},"content":{"rendered":"\n<p>Khi l\u00e0m vi\u1ec7c v\u1edbi Python, ch\u1eafc h\u1eb3n b\u1ea1n v\u00e0 m\u00ecnh \u0111\u1ec1u th\u01b0\u1eddng xuy\u00ean g\u1eb7p <code>dictionary<\/code> (hay <code>dict<\/code>). \u0110\u00e2y l\u00e0 c\u1ea5u tr\u00fac d\u1eef li\u1ec7u quen thu\u1ed9c nh\u1edd kh\u1ea3 n\u0103ng l\u01b0u tr\u1eef v\u00e0 truy xu\u1ea5t nhanh theo c\u1eb7p <strong>key\u2013value<\/strong>. Tuy v\u1eady, \u0111\u1ec3 khai th\u00e1c t\u1ed1i \u0111a s\u1ee9c m\u1ea1nh c\u1ee7a n\u00f3, ch\u00fang ta c\u1ea7n n\u1eafm v\u1eefng nh\u1eefng h\u00e0m v\u00e0 ph\u01b0\u01a1ng th\u1ee9c x\u1eed l\u00fd \u0111i k\u00e8m.<\/p>\n\n\n\n<p>Trong b\u00e0i vi\u1ebft n\u00e0y, thay v\u00ec ch\u1ec9 li\u1ec7t k\u00ea kh\u00f4 khan, m\u00ecnh mu\u1ed1n c\u00f9ng b\u1ea1n \u201c\u0111i m\u1ed9t v\u00f2ng\u201d qua c\u00e1c thao t\u00e1c quan tr\u1ecdng nh\u1ea5t v\u1edbi <code>dict<\/code>: t\u1eeb kh\u1edfi t\u1ea1o, truy xu\u1ea5t, th\u00eam\/x\u00f3a, cho \u0111\u1ebfn c\u00e1c th\u1ee7 thu\u1eadt n\u00e2ng cao v\u00e0 t\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t. M\u1ed7i ph\u1ea7n s\u1ebd c\u00f3 v\u00ed d\u1ee5 minh h\u1ecda k\u00e8m gi\u1ea3i th\u00edch chi ti\u1ebft, \u0111\u1ec3 c\u1ea3 hai ch\u00fang ta v\u1eeba \u00f4n l\u1ea1i ki\u1ebfn th\u1ee9c, v\u1eeba c\u1ee7ng c\u1ed1 th\u00eam kinh nghi\u1ec7m s\u1eed d\u1ee5ng <code>dict<\/code> trong th\u1ef1c t\u1ebf.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">B\u1ea3ng t\u1ed5ng h\u1ee3p c\u00e1c thao t\u00e1c ph\u1ed5 bi\u1ebfn v\u1edbi Dictionary trong Python <\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Nh\u00f3m thao t\u00e1c<\/strong><\/th><th><strong>Ph\u01b0\u01a1ng th\u1ee9c \/ C\u00e1ch d\u00f9ng<\/strong><\/th><th><strong>M\u00f4 t\u1ea3<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>Kh\u1edfi t\u1ea1o<\/strong><\/td><td><code>dict()<\/code>, <code>{}<\/code>, <code>dict.fromkeys(keys, value)<\/code><\/td><td>T\u1ea1o dictionary r\u1ed7ng ho\u1eb7c v\u1edbi gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh<\/td><\/tr><tr><td><strong>Truy xu\u1ea5t<\/strong><\/td><td><code>dict[key]<\/code>, <code>dict.get(key, default)<\/code><\/td><td>L\u1ea5y value theo key, c\u00f3 th\u1ec3 k\u00e8m gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh<\/td><\/tr><tr><td><strong>Ki\u1ec3m tra<\/strong><\/td><td><code>key in dict<\/code><\/td><td>Ki\u1ec3m tra key c\u00f3 t\u1ed3n t\u1ea1i trong dictionary hay kh\u00f4ng<\/td><\/tr><tr><td><strong>Th\u00eam\/C\u1eadp nh\u1eadt<\/strong><\/td><td><code>dict[key] = value<\/code>, <code>dict.update(other)<\/code><\/td><td>Th\u00eam key m\u1edbi ho\u1eb7c c\u1eadp nh\u1eadt value<\/td><\/tr><tr><td><strong>X\u00f3a<\/strong><\/td><td><code>dict.pop(key, default)<\/code>, <code>del dict[key]<\/code>, <code>dict.popitem()<\/code>, <code>dict.clear()<\/code><\/td><td>X\u00f3a ph\u1ea7n t\u1eed theo key, x\u00f3a ph\u1ea7n t\u1eed cu\u1ed1i c\u00f9ng, ho\u1eb7c x\u00f3a to\u00e0n b\u1ed9 dictionary<\/td><\/tr><tr><td><strong>Truy xu\u1ea5t t\u1eadp h\u1ee3p<\/strong><\/td><td><code>dict.keys()<\/code>, <code>dict.values()<\/code>, <code>dict.items()<\/code><\/td><td>Tr\u1ea3 v\u1ec1 view ch\u1ee9a keys, values ho\u1eb7c items<\/td><\/tr><tr><td><strong>Sao ch\u00e9p<\/strong><\/td><td><code>dict.copy()<\/code>, <code>copy.deepcopy(dict)<\/code><\/td><td>T\u1ea1o b\u1ea3n sao shallow ho\u1eb7c deep<\/td><\/tr><tr><td><strong>Kh\u1edfi t\u1ea1o c\u00f3 \u0111i\u1ec1u ki\u1ec7n<\/strong><\/td><td><code>dict.setdefault(key, default)<\/code><\/td><td>L\u1ea5y value n\u1ebfu key t\u1ed3n t\u1ea1i, n\u1ebfu kh\u00f4ng th\u00ec g\u00e1n gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh<\/td><\/tr><tr><td><strong>Comprehension<\/strong><\/td><td><code>{k: v for k, v in iterable}<\/code><\/td><td>T\u1ea1o dictionary b\u1eb1ng bi\u1ec3u th\u1ee9c duy\u1ec7t (ng\u1eafn g\u1ecdn, linh ho\u1ea1t)<\/td><\/tr><tr><td><strong>H\u1ee3p nh\u1ea5t<\/strong><\/td><td>`dict1<\/td><td>dict2<code>(Python 3.9+),<\/code>{**d1, **d2}`<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">1. Kh\u1edfi t\u1ea1o Dictionary<\/h2>\n\n\n\n<p>Python cung c\u1ea5p nhi\u1ec1u c\u00e1ch kh\u1edfi t\u1ea1o <code>dict<\/code>. Hi\u1ec3u r\u00f5 c\u00e1ch t\u1ea1o gi\u00fap code ng\u1eafn g\u1ecdn v\u00e0 tr\u00e1nh l\u1ed7i.<\/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># Create empty dictionaries\nempty1 = {}            # literal syntax\nempty2 = dict()        # dict constructor\n\n# Create with initial key-value pairs\nperson = {\"name\": \"Alice\", \"age\": 30}\n\n# Create from iterable of pairs\npairs = &#91;(\"id\", 1), (\"score\", 95)&#93;\nfrom_pairs = dict(pairs)\n\n# Create using fromkeys (all values the same)\nkeys = &#91;\"a\", \"b\", \"c\"&#93;\ndefault_map = dict.fromkeys(keys, 0)\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\"># Create empty dictionaries<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">empty1 <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{}<\/span><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #616E88\"># literal syntax<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">empty2 <\/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\">        <\/span><span style=\"color: #616E88\"># dict constructor<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Create with initial key-value pairs<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">person <\/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\">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\">Alice<\/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\">age<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Create from iterable of pairs<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">pairs <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">id<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/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\">score<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">95<\/span><span style=\"color: #ECEFF4\">)&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">from_pairs <\/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\">pairs<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Create using fromkeys (all values the same)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">keys <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">a<\/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\">b<\/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\">c<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">default_map <\/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\">fromkeys<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">keys<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch chi ti\u1ebft:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>{}<\/code> l\u00e0 c\u00e1ch nhanh v\u00e0 ph\u1ed5 bi\u1ebfn nh\u1ea5t \u0111\u1ec3 t\u1ea1o dictionary r\u1ed7ng.<\/li>\n\n\n\n<li><code>dict()<\/code> h\u1eefu d\u1ee5ng khi b\u1ea1n x\u00e2y d\u1ef1ng dict t\u1eeb iterable (v\u00ed d\u1ee5 <code>dict(list_of_pairs)<\/code>).<\/li>\n\n\n\n<li><code>fromkeys()<\/code> t\u1ea1o c\u00f9ng m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng value cho m\u1ecdi key \u2014 c\u1ea9n th\u1eadn n\u1ebfu value l\u00e0 mutable (tham chi\u1ebfu chung).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Truy xu\u1ea5t v\u00e0 t\u00ecm ki\u1ebfm ph\u1ea7n t\u1eed<\/h2>\n\n\n\n<p>Truy xu\u1ea5t theo <strong>key<\/strong> l\u00e0 thao t\u00e1c c\u01a1 b\u1ea3n; c\u1ea7n ph\u00e2n bi\u1ec7t gi\u1eefa truy xu\u1ea5t tr\u1ef1c ti\u1ebfp v\u00e0 truy xu\u1ea5t an to\u00e0n.<\/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>student = {\"name\": \"Bob\", \"gpa\": 3.6}\n\n# Direct indexing (may raise KeyError)\ntry:\n    major = student&#91;\"major\"&#93;\nexcept KeyError:\n    print(\"Key 'major' not found\")\n\n# Safe access with get()\nmajor_safe = student.get(\"major\", \"Undeclared\")\n# Check existence\nhas_name = \"name\" in student\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\">student <\/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\">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\">Bob<\/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\">gpa<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3.6<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Direct indexing (may raise KeyError)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">try<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    major <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> student<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">major<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">except<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">KeyError<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Key &#39;major&#39; not found<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Safe access with get()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">major_safe <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> student<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">get<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">major<\/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\">Undeclared<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Check existence<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">has_name <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">name<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> student<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch chi ti\u1ebft:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>student[\"major\"]<\/code> s\u1ebd raise <code>KeyError<\/code> n\u1ebfu key kh\u00f4ng t\u1ed3n t\u1ea1i \u2014 d\u00f9ng <code>try\/except<\/code> n\u1ebfu b\u1ea1n mu\u1ed1n x\u1eed l\u00fd ngo\u1ea1i l\u1ec7.<\/li>\n\n\n\n<li><code>student.get(\"major\", \"Undeclared\")<\/code> tr\u1ea3 v\u1ec1 gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh n\u1ebfu key kh\u00f4ng t\u1ed3n t\u1ea1i \u2014 \u0111\u00e2y l\u00e0 pattern an to\u00e0n v\u00e0 th\u01b0\u1eddng \u0111\u01b0\u1ee3c d\u00f9ng.<\/li>\n\n\n\n<li><code>key in dict<\/code> tr\u1ea3 v\u1ec1 <code>True\/False<\/code> r\u1ea5t nhanh (O(1) trung b\u00ecnh) v\u00ec dict d\u00f9ng hash table.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">3. Th\u00eam v\u00e0 c\u1eadp nh\u1eadt ph\u1ea7n t\u1eed<\/h2>\n\n\n\n<p>Th\u00eam ho\u1eb7c c\u1eadp nh\u1eadt l\u00e0 thao t\u00e1c \u0111\u01a1n gi\u1ea3n nh\u01b0ng c\u00f3 v\u00e0i l\u01b0u \u00fd khi update nhi\u1ec1u ph\u1ea7n t\u1eed.<\/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>config = {\"host\": \"localhost\", \"port\": 8000}\n\n# Add or update single key\nconfig&#91;\"debug\"&#93; = True\nconfig&#91;\"port\"&#93; = 8080  # overwrite existing value\n\n# Update from another dict\nmore = {\"timeout\": 30, \"port\": 9000}\nconfig.update(more)    # config&#91;\"port\"&#93; becomes 9000\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\">config <\/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\">host<\/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\">localhost<\/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\">port<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">8000<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Add or update single key<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">config<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">debug<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">True<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">config<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">port<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">8080<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># overwrite existing value<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Update from another dict<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">more <\/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\">timeout<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">port<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">9000<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">config<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">update<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">more<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #616E88\"># config&#91;&quot;port&quot;&#93; becomes 9000<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch chi ti\u1ebft:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>G\u00e1n <code>config[key] = value<\/code> th\u00eam key m\u1edbi ho\u1eb7c ghi \u0111\u00e8 value n\u1ebfu key t\u1ed3n t\u1ea1i.<\/li>\n\n\n\n<li><code>update()<\/code> h\u1ee3p nh\u1ea5t key\/value t\u1eeb dict kh\u00e1c; n\u1ebfu c\u00f3 key tr\u00f9ng, gi\u00e1 tr\u1ecb c\u1ee7a dict truy\u1ec1n v\u00e0o s\u1ebd ghi \u0111\u00e8.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">4. X\u00f3a ph\u1ea7n t\u1eed trong Dictionary<\/h2>\n\n\n\n<p>C\u00f3 nhi\u1ec1u c\u00e1ch x\u00f3a, m\u1ed7i c\u00e1ch c\u00f3 h\u00e0nh vi v\u00e0 return kh\u00e1c nhau.<\/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>data = {\"a\": 1, \"b\": 2, \"c\": 3}\n\n# pop: returns the removed value, can provide default\nval = data.pop(\"b\", None)  # val == 2\n\n# del: may raise KeyError if key not found\ndel data&#91;\"c\"&#93;\n\n# popitem: removes and returns an arbitrary\/last item (Python 3.7+ guarantees LIFO)\nk, v = data.popitem()\n\n# clear: removes all items\ndata.clear()\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\">data <\/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\">a<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">b<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">c<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># pop: returns the removed value, can provide default<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">val <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> data<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">pop<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">b<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">None<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># val == 2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># del: may raise KeyError if key not found<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">del<\/span><span style=\"color: #D8DEE9FF\"> data<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">c<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># popitem: removes and returns an arbitrary\/last item (Python 3.7+ guarantees LIFO)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">k<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> v <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> data<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">popitem<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># clear: removes all items<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">clear<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch chi ti\u1ebft:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>pop(key, default)<\/code> an to\u00e0n h\u01a1n <code>pop(key)<\/code> v\u00ec kh\u00f4ng raise l\u1ed7i n\u1ebfu key kh\u00f4ng t\u1ed3n t\u1ea1i (tr\u1ea3 v\u1ec1 default).<\/li>\n\n\n\n<li><code>del<\/code> tr\u1ef1c ti\u1ebfp x\u00f3a v\u00e0 s\u1ebd raise <code>KeyError<\/code> n\u1ebfu key kh\u00f4ng t\u1ed3n t\u1ea1i \u2014 d\u00f9ng khi b\u1ea1n ch\u1eafc ch\u1eafn key t\u1ed3n t\u1ea1i.<\/li>\n\n\n\n<li><code>popitem()<\/code> h\u1eefu d\u1ee5ng khi b\u1ea1n c\u1ea7n l\u1ea5y ph\u1ea7n t\u1eed cu\u1ed1i c\u00f9ng ho\u1eb7c x\u1eed l\u00fd dict nh\u01b0 stack.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5. C\u00e1c ph\u01b0\u01a1ng th\u1ee9c l\u00e0m vi\u1ec7c v\u1edbi Key v\u00e0 Value<\/h2>\n\n\n\n<p><code>keys()<\/code>, <code>values()<\/code>, <code>items()<\/code> tr\u1ea3 v\u1ec1 <em>view<\/em> object (kh\u00f4ng ph\u1ea3i list), c\u00f3 t\u00ednh \u201clive\u201d \u2014 ngh\u0129a l\u00e0 c\u1eadp nh\u1eadt khi dict thay \u0111\u1ed5i.<\/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>sample = {\"x\": 10, \"y\": 20}\nk_view = sample.keys()\nv_view = sample.values()\ni_view = sample.items()\n\n# Convert to list snapshot\nkeys_list = list(k_view)\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\">sample <\/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\">x<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">y<\/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\">k_view <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> sample<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">keys<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">v_view <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> sample<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">values<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">i_view <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> sample<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Convert to list snapshot<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">keys_list <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">list<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">k_view<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch chi ti\u1ebft:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Views ph\u1ea3n \u00e1nh thay \u0111\u1ed5i c\u1ee7a dict: n\u1ebfu b\u1ea1n th\u00eam key m\u1edbi, <code>k_view<\/code> thay \u0111\u1ed5i theo.<\/li>\n\n\n\n<li>N\u1ebfu c\u1ea7n m\u1ed9t snapshot c\u1ed1 \u0111\u1ecbnh \u0111\u1ec3 l\u1eb7p an to\u00e0n sau \u0111\u00f3, chuy\u1ec3n v\u1ec1 <code>list()<\/code>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">6. Duy\u1ec7t Dictionary<\/h2>\n\n\n\n<p>Duy\u1ec7t <code>dict<\/code> ph\u1ed5 bi\u1ebfn trong x\u1eed l\u00fd d\u1eef li\u1ec7u \u2014 c\u1ea7n l\u01b0u \u00fd khi s\u1eeda dict trong l\u00fac iterate.<\/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>info = {\"a\": 1, \"b\": 2, \"c\": 3}\n\n# Iterate over keys\nfor key in info:\n    print(key, info&#91;key&#93;)\n\n# Iterate over items (key, value)\nfor key, value in info.items():\n    print(key, value)\n\n# Safe removal while iterating: iterate over list of keys\nfor key in list(info.keys()):\n    if info&#91;key&#93; % 2 == 1:\n        del info&#91;key&#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: #D8DEE9FF\">info <\/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\">a<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">b<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">c<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Iterate over keys<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> key <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> info<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">key<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> info<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">key<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Iterate over items (key, value)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> key<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> value <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> info<\/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: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">key<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> value<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Safe removal while iterating: iterate over list of keys<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> key <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">list<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">info<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">keys<\/span><span style=\"color: #ECEFF4\">()):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> info<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">key<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">==<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">del<\/span><span style=\"color: #D8DEE9FF\"> info<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">key<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch chi ti\u1ebft:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kh\u00f4ng n\u00ean thay \u0111\u1ed5i k\u00edch th\u01b0\u1edbc dict khi \u0111ang iterate tr\u1ef1c ti\u1ebfp \u2014 \u0111i\u1ec1u n\u00e0y g\u00e2y <code>RuntimeError<\/code> ho\u1eb7c h\u00e0nh vi kh\u00f4ng mong mu\u1ed1n.<\/li>\n\n\n\n<li>Gi\u1ea3i ph\u00e1p: iterate tr\u00ean <code>list(dict.keys())<\/code> \u0111\u1ec3 c\u00f3 snapshot v\u00e0 thay \u0111\u1ed5i dict an to\u00e0n.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">7. C\u00e1c ph\u01b0\u01a1ng th\u1ee9c h\u1eefu \u00edch kh\u00e1c<\/h2>\n\n\n\n<p>M\u1ed9t s\u1ed1 ph\u01b0\u01a1ng th\u1ee9c r\u1ea5t h\u1eefu d\u1ee5ng: <code>copy()<\/code>, <code>fromkeys()<\/code>, <code>setdefault()<\/code>, v\u00e0 <code>dict comprehension<\/code>. C\u1ea7n hi\u1ec3u shallow copy vs deep copy.<\/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>import copy\n\noriginal = {\"user\": {\"name\": \"Tom\"}}\nshallow = original.copy()\ndeep_copy = copy.deepcopy(original)\n\n# setdefault: get value or set default if missing\nval = original.setdefault(\"age\", 25)\n\n# dict comprehension\nsquared = {k: v * v for k, v in {1:1, 2:2, 3:3}.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\">import<\/span><span style=\"color: #D8DEE9FF\"> copy<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">original <\/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\">user<\/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\">Tom<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">}}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">shallow <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> original<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">copy<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">deep_copy <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> copy<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">deepcopy<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">original<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># setdefault: get value or set default if missing<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">val <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> original<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">setdefault<\/span><span style=\"color: #ECEFF4\">(<\/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\">25<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># dict comprehension<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">squared <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\">k<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> v <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\"> v <\/span><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> k<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> v <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">}.<\/span><span style=\"color: #88C0D0\">items<\/span><span style=\"color: #ECEFF4\">()}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch chi ti\u1ebft:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>copy()<\/code> t\u1ea1o shallow copy: n\u1ebfu value l\u00e0 mutable object (v\u00ed d\u1ee5 nested dict, list), both dicts chia s\u1ebb c\u00f9ng \u0111\u1ed1i t\u01b0\u1ee3ng con.<\/li>\n\n\n\n<li><code>copy.deepcopy()<\/code> t\u1ea1o b\u1ea3n sao ho\u00e0n to\u00e0n, tr\u00e1nh side-effect khi thay \u0111\u1ed5i nested objects.<\/li>\n\n\n\n<li><code>setdefault(key, default)<\/code> tr\u1ea3 v\u1ec1 value n\u1ebfu key t\u1ed3n t\u1ea1i; n\u1ebfu kh\u00f4ng c\u00f3 key th\u00ec th\u00eam key v\u1edbi default v\u00e0 tr\u1ea3 v\u1ec1 default \u2014 h\u1eefu \u00edch khi kh\u1edfi t\u1ea1o list trong group-by pattern.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">8. C\u00e1c thao t\u00e1c n\u00e2ng cao v\u1edbi Dictionary<\/h2>\n\n\n\n<p>X\u1eed l\u00fd nested dict, merge dicts v\u00e0 s\u1eed d\u1ee5ng c\u00e1c pattern n\u00e2ng cao.<\/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># Merging dictionaries (Python 3.9+)\na = {\"x\": 1, \"y\": 2}\nb = {\"y\": 20, \"z\": 3}\nmerged = a | b  # {'x':1, 'y':20, 'z':3} -> b overwrites a\n\n# Alternative (older Python)\nmerged2 = {**a, **b}\n\n# Access nested dict safely\nconfig = {\"db\": {\"host\": \"localhost\", \"port\": 5432}}\nhost = config.get(\"db\", {}).get(\"host\")\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\"># Merging dictionaries (Python 3.9+)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">a <\/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\">x<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">y<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">b <\/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\">y<\/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 style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">z<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">merged <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> a <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> b  <\/span><span style=\"color: #616E88\"># {&#39;x&#39;:1, &#39;y&#39;:20, &#39;z&#39;:3} -&gt; b overwrites a<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Alternative (older Python)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">merged2 <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #81A1C1\">**<\/span><span style=\"color: #D8DEE9FF\">a<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">**<\/span><span style=\"color: #D8DEE9FF\">b<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Access nested dict safely<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">config <\/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\">db<\/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\">host<\/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\">localhost<\/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\">port<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5432<\/span><span style=\"color: #ECEFF4\">}}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">host <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> config<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">get<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">db<\/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: #88C0D0\">get<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">host<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch chi ti\u1ebft:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>To\u00e1n t\u1eed <code>|<\/code> (Python 3.9+) h\u1ee3p nh\u1ea5t hai dict; khi c\u00f3 key tr\u00f9ng, value b\u00ean ph\u1ea3i ghi \u0111\u00e8.<\/li>\n\n\n\n<li><code>{**a, **b}<\/code> t\u01b0\u01a1ng t\u1ef1, d\u00f9ng khi kh\u00f4ng c\u00f3 <code>|<\/code>.<\/li>\n\n\n\n<li>V\u1edbi nested dict th\u01b0\u1eddng d\u00f9ng <code>get(..., {})<\/code> \u0111\u1ec3 tr\u00e1nh <code>AttributeError<\/code>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">9. T\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t khi l\u00e0m vi\u1ec7c v\u1edbi Dictionary<\/h2>\n\n\n\n<p>Hi\u1ec3u \u0111\u1ed9 ph\u1ee9c t\u1ea1p gi\u00fap ch\u1ecdn c\u1ea5u tr\u00fac ph\u00f9 h\u1ee3p.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Key lookup<\/strong>: O(1) average.<\/li>\n\n\n\n<li><strong>Value lookup \/ filter<\/strong>: O(n) v\u00ec ph\u1ea3i duy\u1ec7t to\u00e0n b\u1ed9 values\/items.<\/li>\n\n\n\n<li><strong>Khi c\u1ea7n t\u00ecm theo value th\u01b0\u1eddng xuy\u00ean<\/strong>: x\u00e2y d\u1ef1ng <strong>inverted index<\/strong> (map value \u2192 list of keys).<\/li>\n<\/ul>\n\n\n\n<p>V\u00ed d\u1ee5 x\u00e2y index:<\/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 defaultdict\n\nusers = {\n    \"u1\": {\"name\": \"Alice\", \"city\": \"Hanoi\"},\n    \"u2\": {\"name\": \"Bob\", \"city\": \"Hanoi\"},\n    \"u3\": {\"name\": \"Carol\", \"city\": \"Hue\"},\n}\n\ncity_index = defaultdict(list)\nfor uid, info in users.items():\n    city_index&#91;info.get(\"city\")&#93;.append(uid)\n\n# Lookup users in Hanoi quickly\nhanoi_users = city_index&#91;\"Hanoi\"&#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\">from<\/span><span style=\"color: #D8DEE9FF\"> collections <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> defaultdict<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">users <\/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\">u1<\/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\">Alice<\/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\">city<\/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\">Hanoi<\/span><span style=\"color: #ECEFF4\">&quot;<\/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\">u2<\/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\">Bob<\/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\">city<\/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\">Hanoi<\/span><span style=\"color: #ECEFF4\">&quot;<\/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\">u3<\/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\">Carol<\/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\">city<\/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\">Hue<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">city_index <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">defaultdict<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">list<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> uid<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> info <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> users<\/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\">    city_index<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">info<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">get<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">city<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)&#93;.<\/span><span style=\"color: #88C0D0\">append<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">uid<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Lookup users in Hanoi quickly<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">hanoi_users <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> city_index<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Hanoi<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch chi ti\u1ebft:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Index gi\u00fap chuy\u1ec3n t\u1ed1n th\u1eddi gian O(n) th\u00e0nh O(1) cho tra c\u1ee9u nhi\u1ec1u l\u1ea7n, \u0111\u1ed5i l\u1ea1i t\u1ed1n th\u00eam memory v\u00e0 c\u1ea7n c\u1eadp nh\u1eadt index khi data thay \u0111\u1ed5i.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">10. K\u1ebft lu\u1eadn (phi\u00ean b\u1ea3n m\u1edbi)<\/h2>\n\n\n\n<p>Sau khi c\u00f9ng nhau \u0111i qua t\u1eebng ph\u1ea7n, t\u1eeb nh\u1eefng thao t\u00e1c c\u01a1 b\u1ea3n nh\u01b0 kh\u1edfi t\u1ea1o, truy xu\u1ea5t, th\u00eam v\u00e0 x\u00f3a ph\u1ea7n t\u1eed, cho \u0111\u1ebfn nh\u1eefng k\u1ef9 thu\u1eadt n\u00e2ng cao nh\u01b0 merge dict, d\u00f9ng <code>setdefault<\/code>, hay t\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t b\u1eb1ng inverted index, ch\u1eafc h\u1eb3n b\u1ea1n c\u0169ng th\u1ea5y r\u1eb1ng <code>dictionary<\/code> th\u1ef1c s\u1ef1 l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 m\u1ea1nh m\u1ebd trong Python.<\/p>\n\n\n\n<p>\u0110i\u1ec1u quan tr\u1ecdng kh\u00f4ng ch\u1ec9 l\u00e0 \u201cbi\u1ebft c\u00f3 h\u00e0m n\u00e0o\u201d, m\u00e0 c\u00f2n l\u00e0 hi\u1ec3u \u0111\u01b0\u1ee3c khi n\u00e0o n\u00ean d\u00f9ng c\u00e1ch n\u00e0o \u0111\u1ec3 code v\u1eeba r\u00f5 r\u00e0ng, v\u1eeba hi\u1ec7u qu\u1ea3. V\u1edbi m\u00ecnh, vi\u1ec7c n\u1eafm v\u1eefng c\u00e1c ph\u01b0\u01a1ng th\u1ee9c c\u1ee7a <code>dict<\/code> gi\u00fap ti\u1ebft ki\u1ec7m r\u1ea5t nhi\u1ec1u th\u1eddi gian, \u0111\u1ed3ng th\u1eddi l\u00e0m cho ch\u01b0\u01a1ng tr\u00ecnh d\u1ec5 b\u1ea3o tr\u00ec h\u01a1n trong t\u01b0\u01a1ng lai.<\/p>\n\n\n\n<p>Hy v\u1ecdng b\u00e0i vi\u1ebft n\u00e0y mang l\u1ea1i cho b\u1ea1n nh\u1eefng g\u1ee3i \u00fd h\u1eefu \u00edch v\u00e0 c\u1ea3m gi\u00e1c t\u1ef1 tin h\u01a1n m\u1ed7i khi x\u1eed l\u00fd <code>dict<\/code> trong c\u00f4ng vi\u1ec7c ho\u1eb7c h\u1ecdc t\u1eadp. V\u00e0 bi\u1ebft \u0111\u00e2u, trong qu\u00e1 tr\u00ecnh \u00e1p d\u1ee5ng, b\u1ea1n s\u1ebd t\u1ef1 t\u00ecm ra th\u00eam nhi\u1ec1u m\u1eb9o hay \u0111\u1ec3 chia s\u1ebb ng\u01b0\u1ee3c l\u1ea1i v\u1edbi c\u1ed9ng \u0111\u1ed3ng.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">11. T\u00e0i li\u1ec7u tham kh\u1ea3o (APA)<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Python Software Foundation. (2024). <em>Built-in Types \u2014 dict<\/em>. Python Documentation. Retrieved from <a>https:\/\/docs.python.org\/3\/library\/stdtypes.html#dict<\/a><\/li>\n\n\n\n<li>Beazley, D., &amp; Jones, B. K. (2013). <em>Python Cookbook<\/em> (3rd ed.). O\u2019Reilly Media.<\/li>\n\n\n\n<li>Ramalho, L. (2015). <em>Fluent Python: Clear, Concise, and Effective Programming<\/em>. O\u2019Reilly Media.<\/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>Khi l\u00e0m vi\u1ec7c v\u1edbi Python, ch\u1eafc h\u1eb3n b\u1ea1n v\u00e0 m\u00ecnh \u0111\u1ec1u th\u01b0\u1eddng xuy\u00ean g\u1eb7p dictionary (hay&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-1671","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\/1671","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=1671"}],"version-history":[{"count":3,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1671\/revisions"}],"predecessor-version":[{"id":2471,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1671\/revisions\/2471"}],"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=1671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/categories?post=1671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/tags?post=1671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}