{"id":1611,"date":"2025-09-29T15:56:55","date_gmt":"2025-09-29T08:56:55","guid":{"rendered":"https:\/\/kienthucmo.com\/?p=1611"},"modified":"2025-11-05T23:42:49","modified_gmt":"2025-11-05T16:42:49","slug":"xoa-phan-tu-trong-set-bang-python","status":"publish","type":"post","link":"https:\/\/kienthucmo.com\/vi\/xoa-phan-tu-trong-set-bang-python\/","title":{"rendered":"X\u00f3a ph\u1ea7n t\u1eed trong Set b\u1eb1ng Python"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Set (t\u1eadp h\u1ee3p) trong Python l\u00e0 m\u1ed9t c\u1ea5u tr\u00fac d\u1eef li\u1ec7u r\u1ea5t h\u1eefu \u00edch khi m\u00ecnh c\u1ea7n l\u01b0u nhi\u1ec1u ph\u1ea7n t\u1eed <strong>kh\u00f4ng tr\u00f9ng l\u1eb7p<\/strong> v\u00e0 c\u1ea7n ki\u1ec3m tra s\u1ef1 t\u1ed3n t\u1ea1i (membership) nhanh. V\u00ec set l\u00e0 <strong>unordered<\/strong> v\u00e0 ph\u1ea7n t\u1eed ph\u1ea3i <strong>hashable<\/strong>, thao t\u00e1c v\u1edbi set kh\u00e1c so v\u1edbi list hay tuple \u2014 \u0111\u1eb7c bi\u1ec7t l\u00e0 vi\u1ec7c <strong>x\u00f3a ph\u1ea7n t\u1eed<\/strong>. Vi\u1ec7c bi\u1ebft r\u00f5 c\u00e1c ph\u01b0\u01a1ng ph\u00e1p x\u00f3a, h\u1eadu qu\u1ea3 v\u00e0 c\u00e1c l\u01b0u \u00fd gi\u00fap m\u00ecnh tr\u00e1nh bug (v\u00ed d\u1ee5 KeyError), ti\u1ebft ki\u1ec7m b\u1ed9 nh\u1edb v\u00e0 vi\u1ebft code an to\u00e0n h\u01a1n trong m\u00f4i tr\u01b0\u1eddng th\u1ef1c t\u1ebf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">B\u00e0i vi\u1ebft n\u00e0y s\u1ebd \u0111i s\u00e2u t\u1eebng ph\u01b0\u01a1ng ph\u00e1p x\u00f3a ph\u1ea7n t\u1eed trong set: c\u00fa ph\u00e1p, v\u00ed d\u1ee5, ph\u00e2n t\u00edch ph\u1ee9c t\u1ea1p t\u00ednh to\u00e1n, \u01b0u\/nh\u01b0\u1ee3c \u0111i\u1ec3m, c\u00e1c pattern an to\u00e0n, v\u00e0 c\u00e1c t\u00ecnh hu\u1ed1ng n\u00ean d\u00f9ng t\u1eebng c\u00e1ch.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. T\u1ed5ng quan v\u1ec1 Set trong Python \u2014 nh\u1eefng \u0111\u1eb7c \u0111i\u1ec3m quan tr\u1ecdng li\u00ean quan \u0111\u1ebfn x\u00f3a ph\u1ea7n t\u1eed<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tr\u01b0\u1edbc khi x\u00f3a, m\u00ecnh c\u1ea7n nh\u1edb v\u00e0i \u0111\u1eb7c t\u00ednh c\u1ed1t l\u00f5i c\u1ee7a set:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Unordered<\/strong>: Set kh\u00f4ng c\u00f3 th\u1ee9 t\u1ef1 c\u1ed1 \u0111\u1ecbnh \u2014 kh\u00f4ng th\u1ec3 x\u00f3a \u201cph\u1ea7n t\u1eed th\u1ee9 i\u201d gi\u1ed1ng nh\u01b0 index \u1edf list.<\/li>\n\n\n\n<li><strong>No duplicates<\/strong>: M\u1ed7i gi\u00e1 tr\u1ecb ch\u1ec9 xu\u1ea5t hi\u1ec7n m\u1ed9t l\u1ea7n \u2014 x\u00f3a gi\u00e1 tr\u1ecb s\u1ebd lo\u1ea1i t\u1ea5t c\u1ea3 l\u1ea7n xu\u1ea5t hi\u1ec7n (nh\u01b0ng trong set v\u1ed1n ch\u1ec9 c\u00f3 m\u1ed9t).<\/li>\n\n\n\n<li><strong>Hashable elements<\/strong>: C\u00e1c ph\u1ea7n t\u1eed ph\u1ea3i hashable (v\u00ed d\u1ee5 numbers, strings, tuples of hashables). Kh\u00f4ng th\u1ec3 ch\u1ee9a list, dict (kh\u00f4ng hashable).<\/li>\n\n\n\n<li><strong>Mutable<\/strong>: Set l\u00e0 mutable \u2014 c\u00f3 th\u1ec3 th\u00eam\/x\u00f3a ph\u1ea7n t\u1eed (kh\u00f4ng gi\u1ed1ng frozenset).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Hi\u1ec3u r\u00f5 \u0111i\u1ec1u n\u00e0y gi\u00fap ch\u1ecdn ph\u01b0\u01a1ng ph\u00e1p x\u00f3a ph\u00f9 h\u1ee3p: ta kh\u00f4ng x\u00f3a theo index, m\u00e0 x\u00f3a theo gi\u00e1 tr\u1ecb ho\u1eb7c x\u00f3a to\u00e0n b\u1ed9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. C\u00e1c ph\u01b0\u01a1ng th\u1ee9c c\u01a1 b\u1ea3n \u0111\u1ec3 x\u00f3a ph\u1ea7n t\u1eed (remove, discard, pop, clear)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 <code>remove(elem)<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>M\u1ee5c \u0111\u00edch:<\/strong> X\u00f3a ph\u1ea7n t\u1eed c\u00f3 gi\u00e1 tr\u1ecb <code>elem<\/code>.<\/li>\n\n\n\n<li><strong>H\u00e0nh vi:<\/strong> N\u1ebfu <code>elem<\/code> t\u1ed3n t\u1ea1i \u2192 x\u00f3a; n\u1ebfu kh\u00f4ng t\u1ed3n t\u1ea1i \u2192 n\u00e9m <code>KeyError<\/code>.<\/li>\n\n\n\n<li><strong>Complexity (avg):<\/strong> O(1)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ed d\u1ee5:<\/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 a set of colors\ncolors = {\"red\", \"green\", \"blue\"}\n\n# Remove \"green\"\ncolors.remove(\"green\")  # Remove \"green\" from the set\nprint(colors)  # {'red', 'blue'}\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 a set of colors<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">colors <\/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\">red<\/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\">green<\/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\">blue<\/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\"># Remove &quot;green&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">colors<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">remove<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">green<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># Remove &quot;green&quot; from the set<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">colors<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># {&#39;red&#39;, &#39;blue&#39;}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Khi d\u00f9ng:<\/strong> D\u00f9ng khi b\u1ea1n <em>ch\u1eafc ch\u1eafn<\/em> ph\u1ea7n t\u1eed t\u1ed3n t\u1ea1i, ho\u1eb7c b\u1ea1n mu\u1ed1n l\u1ed7i s\u1edbm (fail fast) n\u1ebfu ph\u1ea7n t\u1eed kh\u00f4ng t\u1ed3n t\u1ea1i \u2014 h\u1eefu \u00edch trong debug ho\u1eb7c khi thi\u1ebfu ph\u1ea7n t\u1eed l\u00e0 m\u1ed9t t\u00ecnh hu\u1ed1ng b\u1ea5t th\u01b0\u1eddng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.2 <code>discard(elem)<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>M\u1ee5c \u0111\u00edch:<\/strong> X\u00f3a ph\u1ea7n t\u1eed c\u00f3 gi\u00e1 tr\u1ecb <code>elem<\/code>.<\/li>\n\n\n\n<li><strong>H\u00e0nh vi:<\/strong> N\u1ebfu <code>elem<\/code> t\u1ed3n t\u1ea1i \u2192 x\u00f3a; n\u1ebfu kh\u00f4ng t\u1ed3n t\u1ea1i \u2192 kh\u00f4ng l\u00e0m g\u00ec c\u1ea3 (kh\u00f4ng l\u1ed7i).<\/li>\n\n\n\n<li><strong>Complexity (avg):<\/strong> O(1)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ed d\u1ee5:<\/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 a set of animals\nanimals = {\"cat\", \"dog\", \"bird\"}\n\n# Discard \"dog\" safely\nanimals.discard(\"dog\")  # Remove \"dog\" if present\nanimals.discard(\"lion\")  # Does nothing because \"lion\" is not in the set\nprint(animals)  # {'cat', 'bird'}\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 a set of animals<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">animals <\/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\">cat<\/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\">dog<\/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\">bird<\/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\"># Discard &quot;dog&quot; safely<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">animals<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">discard<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">dog<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># Remove &quot;dog&quot; if present<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">animals<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">discard<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">lion<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># Does nothing because &quot;lion&quot; is not in the set<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">animals<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># {&#39;cat&#39;, &#39;bird&#39;}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Khi d\u00f9ng:<\/strong> Khi b\u1ea1n mu\u1ed1n x\u00f3a \u201can to\u00e0n\u201d m\u00e0 kh\u00f4ng c\u1ea7n ki\u1ec3m tra t\u1ed3n t\u1ea1i tr\u01b0\u1edbc \u2014 th\u01b0\u1eddng d\u00f9ng trong lu\u1ed3ng x\u1eed l\u00fd b\u00ecnh th\u01b0\u1eddng, tr\u00e1nh try\/except th\u1eeba th\u00e3i.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.3 <code>pop()<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>M\u1ee5c \u0111\u00edch:<\/strong> X\u00f3a v\u00e0 tr\u1ea3 v\u1ec1 <em>m\u1ed9t<\/em> ph\u1ea7n t\u1eed b\u1ea5t k\u1ef3 t\u1eeb set.<\/li>\n\n\n\n<li><strong>H\u00e0nh vi:<\/strong> N\u1ebfu set r\u1ed7ng \u2192 n\u00e9m <code>KeyError<\/code>. V\u00ec set unordered, <code>pop()<\/code> kh\u00f4ng \u0111\u1ea3m b\u1ea3o ph\u1ea7n t\u1eed c\u1ee5 th\u1ec3 n\u00e0o s\u1ebd b\u1ecb l\u1ea5y.<\/li>\n\n\n\n<li><strong>Complexity (avg):<\/strong> O(1)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ed d\u1ee5:<\/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 a set\nnums = {1, 2, 3}\n\n# Pop an arbitrary element\nelem = nums.pop()  # Remove and return an arbitrary element\nprint(elem)  # Could be 1 or 2 or 3 (implementation dependent)\nprint(nums)  # Remaining elements\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 a set<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">nums <\/span><span style=\"color: #81A1C1\">=<\/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: #D8DEE9FF\"> <\/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>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Pop an arbitrary element<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">elem <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> nums<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">pop<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># Remove and return an arbitrary element<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">elem<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># Could be 1 or 2 or 3 (implementation dependent)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">nums<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># Remaining elements<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Khi d\u00f9ng:<\/strong> D\u00f9ng khi b\u1ea1n mu\u1ed1n <em>l\u1ea5y v\u00e0 lo\u1ea1i b\u1ecf<\/em> m\u1ed9t ph\u1ea7n t\u1eed b\u1ea5t k\u1ef3, v\u00ed d\u1ee5 khi x\u1eed l\u00fd h\u00e0ng \u0111\u1ee3i kh\u00f4ng theo th\u1ee9 t\u1ef1 ho\u1eb7c khi mu\u1ed1n r\u1ed7ng set d\u1ea7n \u0111\u1ec3 x\u1eed l\u00fd t\u1eebng ph\u1ea7n t\u1eed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.4 <code>clear()<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>M\u1ee5c \u0111\u00edch:<\/strong> X\u00f3a to\u00e0n b\u1ed9 ph\u1ea7n t\u1eed trong set.<\/li>\n\n\n\n<li><strong>H\u00e0nh vi:<\/strong> Sau <code>clear()<\/code>, set tr\u1edf th\u00e0nh empty set <code>set()<\/code>.<\/li>\n\n\n\n<li><strong>Complexity:<\/strong> O(n) \u0111\u1ec3 gi\u1ea3i ph\u00f3ng n ph\u1ea7n t\u1eed.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ed d\u1ee5:<\/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 a set\ns = {\"a\", \"b\", \"c\"}\ns.clear()  # Remove all elements\nprint(s)  # set()\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 a set<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">s <\/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: #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\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">s<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">clear<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># Remove all elements<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">s<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># set()<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Khi d\u00f9ng:<\/strong> Khi b\u1ea1n mu\u1ed1n t\u00e1i s\u1eed d\u1ee5ng object set hi\u1ec7n t\u1ea1i nh\u01b0ng d\u1ecdn s\u1ea1ch n\u1ed9i dung (kh\u00f4ng g\u00e1n <code>s = set()<\/code> n\u1ebfu c\u00f3 tham chi\u1ebfu kh\u00e1c t\u1edbi set \u0111\u00f3).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. X\u00f3a nhi\u1ec1u ph\u1ea7n t\u1eed c\u00f9ng l\u00fac \u2014 difference_update, -=, intersection\/discard patterns<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Khi c\u1ea7n x\u00f3a <strong>nhi\u1ec1u gi\u00e1 tr\u1ecb<\/strong> (v\u00ed d\u1ee5 lo\u1ea1i b\u1ecf m\u1ed9t t\u1eadp ph\u1ea7n t\u1eed t\u1eeb set hi\u1ec7n t\u1ea1i), c\u00f3 v\u00e0i c\u00e1ch hi\u1ec7u qu\u1ea3.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.1 <code>difference_update(other_iterable)<\/code> ho\u1eb7c <code>set -= other_set<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>X\u00f3a t\u1ea5t c\u1ea3 ph\u1ea7n t\u1eed thu\u1ed9c <code>other_iterable<\/code> kh\u1ecfi set hi\u1ec7n t\u1ea1i.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ed d\u1ee5:<\/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># Remove multiple elements using difference_update\nmain_set = {1, 2, 3, 4, 5}\nto_remove = {2, 4}\nmain_set.difference_update(to_remove)  # Remove 2 and 4\nprint(main_set)  # {1, 3, 5}\n\n# Equivalent using -=\nmain_set = {1, 2, 3, 4, 5}\nmain_set -= {2, 4}\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\"># Remove multiple elements using difference_update<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">main_set <\/span><span style=\"color: #81A1C1\">=<\/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: #D8DEE9FF\"> <\/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: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">to_remove <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/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\">4<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">main_set<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">difference_update<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">to_remove<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># Remove 2 and 4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">main_set<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># {1, 3, 5}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Equivalent using -=<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">main_set <\/span><span style=\"color: #81A1C1\">=<\/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: #D8DEE9FF\"> <\/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: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">main_set <\/span><span style=\"color: #81A1C1\">-=<\/span><span style=\"color: #D8DEE9FF\"> <\/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\">4<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u01afu \u0111i\u1ec3m:<\/strong> Th\u1ef1c hi\u1ec7n tr\u1ef1c ti\u1ebfp tr\u00ean set g\u1ed1c, th\u01b0\u1eddng nhanh v\u00e0 ti\u1ebft ki\u1ec7m b\u1ed9 nh\u1edb.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.2 L\u1eb7p v\u00e0 <code>discard()<\/code> an to\u00e0n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu <code>to_remove<\/code> l\u00e0 m\u1ed9t l\u1eb7p (list\/tuple), d\u00f9ng <code>discard<\/code> trong v\u00f2ng l\u1eb7p l\u00e0 an to\u00e0n (kh\u00f4ng c\u1ea7n ki\u1ec3m tra t\u1ed3n t\u1ea1i):<\/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>main_set = {\"apple\", \"banana\", \"cherry\"}\nfor fruit in &#91;\"banana\", \"orange\"&#93;:\n    main_set.discard(fruit)  # safe even if 'orange' not present\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\">main_set <\/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: #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: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">cherry<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> fruit <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/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: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">orange<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">&#93;:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    main_set<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">discard<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">fruit<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># safe even if &#39;orange&#39; not present<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">4. X\u00f3a theo \u0111i\u1ec1u ki\u1ec7n \u2014 set comprehension &amp; filter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0110\u00f4i khi c\u1ea7n x\u00f3a t\u1ea5t c\u1ea3 ph\u1ea7n t\u1eed th\u1ecfa m\u1ed9t \u0111i\u1ec1u ki\u1ec7n (v\u00ed d\u1ee5 lo\u1ea1i b\u1ecf c\u00e1c s\u1ed1 ch\u1eb5n). V\u00ec ta kh\u00f4ng th\u1ec3 ch\u1ec9nh s\u1eeda set \u0111ang l\u1eb7p, ta hay t\u1ea1o set m\u1edbi b\u1eb1ng comprehension:<\/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># Remove all even numbers\nnumbers = {1, 2, 3, 4, 5, 6}\nnumbers = {x for x in numbers if x % 2 != 0}  # Keep only odd numbers\nprint(numbers)  # {1, 3, 5}\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\"># Remove all even numbers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">numbers <\/span><span style=\"color: #81A1C1\">=<\/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: #D8DEE9FF\"> <\/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: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">6<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">numbers <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\">x <\/span><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> x <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> numbers <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> x <\/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\">0<\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># Keep only odd numbers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">numbers<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># {1, 3, 5}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Ho\u1eb7c d\u00f9ng <code>filter<\/code> + <code>set<\/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>numbers = {1, 2, 3, 4, 5, 6}\nnumbers = set(filter(lambda x: x % 2 != 0, numbers))\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\">numbers <\/span><span style=\"color: #81A1C1\">=<\/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: #D8DEE9FF\"> <\/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: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">6<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">numbers <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">set<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">filter<\/span><span style=\"color: #ECEFF4\">(<\/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: #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\">0<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> numbers<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>L\u01b0u \u00fd:<\/strong> \u0110\u00e2y t\u1ea1o set m\u1edbi \u2014 n\u1ebfu set l\u1edbn, c\u1ea7n c\u00e2n nh\u1eafc b\u1ed9 nh\u1edb.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. L\u01b0u \u00fd quan tr\u1ecdng khi x\u00f3a trong v\u00f2ng l\u1eb7p (do not mutate while iterating)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kh\u00f4ng<\/strong> n\u00ean s\u1eeda set (th\u00eam\/x\u00f3a) trong khi \u0111ang l\u1eb7p tr\u1ef1c ti\u1ebfp l\u00ean ch\u00ednh set \u0111\u00f3 \u2014 s\u1ebd g\u00e2y l\u1ed7i ho\u1eb7c h\u00e0nh vi kh\u00f4ng l\u01b0\u1eddng. Thay v\u00e0o \u0111\u00f3:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L\u1eb7p tr\u00ean <strong>b\u1ea3n sao<\/strong>: <code>for x in set.copy(): ...<\/code><\/li>\n\n\n\n<li>Ho\u1eb7c thu th\u1eadp ph\u1ea7n t\u1eed c\u1ea7n x\u00f3a v\u00e0o danh s\u00e1ch r\u1ed3i x\u00f3a sau v\u00f2ng l\u1eb7p.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ed d\u1ee5 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># Safe removal while iterating using copy()\nmy_set = {1, 2, 3, 4}\nfor x in my_set.copy():\n    if x % 2 == 0:\n        my_set.discard(x)\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\"># Safe removal while iterating using copy()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">my_set <\/span><span style=\"color: #81A1C1\">=<\/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: #D8DEE9FF\"> <\/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: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> x <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> my_set<\/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\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> x <\/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\">0<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        my_set<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">discard<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">x<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Tr\u00e1nh:<\/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># Unsafe - do not mutate while iterating\nmy_set = {1, 2, 3, 4}\nfor x in my_set:\n    if x % 2 == 0:\n        my_set.remove(x)  # Bad: mutating during iteration<\/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\"># Unsafe - do not mutate while iterating<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">my_set <\/span><span style=\"color: #81A1C1\">=<\/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: #D8DEE9FF\"> <\/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: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> x <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> my_set<\/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\"> x <\/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\">0<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        my_set<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">remove<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">x<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># Bad: mutating during iteration<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">6. X\u1eed l\u00fd l\u1ed7i v\u00e0 pattern an to\u00e0n (try\/except vs discard)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>N\u1ebfu logic y\u00eau c\u1ea7u <strong>b\u1eaft l\u1ed7i<\/strong> khi ph\u1ea7n t\u1eed kh\u00f4ng t\u1ed3n t\u1ea1i (v\u00ed d\u1ee5 thi\u1ebfu d\u1eef li\u1ec7u l\u00e0 bug), d\u00f9ng <code>remove()<\/code> trong <code>try\/except<\/code>:<\/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>try:\n    my_set.remove(\"key\")\nexcept KeyError:\n    # handle missing element (log, raise, etc.)\n    pass\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\">try<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    my_set<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">remove<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">key<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/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: #616E88\"># handle missing element (log, raise, etc.)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">pass<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>N\u1ebfu mu\u1ed1n thao t\u00e1c kh\u00f4ng l\u1ed7i \u2014 d\u00f9ng <code>discard()<\/code> (th\u01b0\u1eddng l\u00e0 l\u1ef1a ch\u1ecdn t\u1ed1t cho code production).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">7. Hi\u1ec7u n\u0103ng \u2014 \u0111\u1ed9 ph\u1ee9c t\u1ea1p v\u00e0 \u1ea3nh h\u01b0\u1edfng b\u1ed9 nh\u1edb<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>remove<\/code>, <code>discard<\/code>, <code>pop<\/code> c\u00f3 average time complexity O(1) (hash table lookup).<\/li>\n\n\n\n<li><code>difference_update<\/code> (v\u1edbi set kh\u00e1c) c\u00f3 complexity ~ O(len(other)) + cost per removal.<\/li>\n\n\n\n<li>T\u1ea1o set m\u1edbi qua comprehension c\u00f3 overhead O(n) c\u1ea3 v\u1ec1 CPU v\u00e0 b\u1ed9 nh\u1edb. N\u1ebfu set r\u1ea5t l\u1edbn (h\u00e0ng tri\u1ec7u ph\u1ea7n t\u1eed), \u01b0u ti\u00ean thao t\u00e1c in-place (<code>difference_update<\/code>, <code>discard<\/code> tr\u00ean t\u1eebng ph\u1ea7n t\u1eed) \u0111\u1ec3 tr\u00e1nh spike b\u1ed9 nh\u1edb.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">8. K\u1ebft lu\u1eadn<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Set trong Python l\u00e0 c\u00f4ng c\u1ee5 m\u1ea1nh m\u1ebd cho c\u00e1c t\u00e1c v\u1ee5 li\u00ean quan \u0111\u1ebfn membership v\u00e0 lo\u1ea1i tr\u00f9ng. Khi x\u00f3a ph\u1ea7n t\u1eed, m\u00ecnh c\u00f3 nhi\u1ec1u l\u1ef1a ch\u1ecdn:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>remove()<\/code> \u2014 x\u00f3a c\u00f3 l\u1ed7i n\u1ebfu kh\u00f4ng t\u1ed3n t\u1ea1i (use when you expect element to be present).<\/li>\n\n\n\n<li><code>discard()<\/code> \u2014 x\u00f3a an to\u00e0n (no error n\u1ebfu kh\u00f4ng t\u1ed3n t\u1ea1i).<\/li>\n\n\n\n<li><code>pop()<\/code> \u2014 l\u1ea5y &amp; x\u00f3a m\u1ed9t ph\u1ea7n t\u1eed b\u1ea5t k\u1ef3.<\/li>\n\n\n\n<li><code>clear()<\/code> \u2014 x\u00f3a to\u00e0n b\u1ed9.<\/li>\n\n\n\n<li><code>difference_update<\/code> \/ <code>-=<\/code> \u2014 x\u00f3a nhi\u1ec1u ph\u1ea7n t\u1eed c\u00f9ng l\u00fac, in-place.<\/li>\n\n\n\n<li>Set comprehension \/ <code>set(filter(...))<\/code> \u2014 t\u1ea1o set m\u1edbi theo \u0111i\u1ec1u ki\u1ec7n.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1ed7i ph\u01b0\u01a1ng ph\u00e1p c\u00f3 trade-off: an to\u00e0n\/ti\u1ec7n l\u1ee3i vs l\u1ed7i s\u1edbm vs hi\u1ec7u n\u0103ng\/b\u1ed9 nh\u1edb. M\u00ecnh khuy\u00ean d\u00f9ng <code>discard()<\/code> cho tr\u01b0\u1eddng h\u1ee3p x\u00f3a \u201ckh\u00f4ng b\u1eaft bu\u1ed9c\u201d, <code>remove()<\/code> khi mu\u1ed1n l\u1ed7i s\u1edbm, v\u00e0 <code>difference_update<\/code>\/<code>-=<\/code> \u0111\u1ec3 x\u00f3a batch hi\u1ec7u qu\u1ea3.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">9. T\u00e0i li\u1ec7u tham kh\u1ea3o<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Python Software Foundation. (2024). <em>Built-in Types \u2014 set and frozenset<\/em>. Python 3 Documentation. Retrieved from <a>https:\/\/docs.python.org\/3\/library\/stdtypes.html#set-types-set-frozenset<\/a><\/li>\n\n\n\n<li>Real Python. (2020). <em>Python Sets: Tutorial<\/em>. Real Python. Retrieved from <a>https:\/\/realpython.com\/python-sets\/<\/a><\/li>\n\n\n\n<li>Lutz, M. (2013). <em>Learning Python<\/em> (5th ed.). 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>Set (t\u1eadp h\u1ee3p) trong Python l\u00e0 m\u1ed9t c\u1ea5u tr\u00fac d\u1eef li\u1ec7u r\u1ea5t h\u1eefu \u00edch khi m\u00ecnh c\u1ea7n l\u01b0u nhi\u1ec1u ph\u1ea7n t\u1eed kh\u00f4ng tr\u00f9ng l\u1eb7p v\u00e0 c\u1ea7n ki\u1ec3m tra s\u1ef1 t\u1ed3n t\u1ea1i (membership) nhanh. V\u00ec set l\u00e0 unordered v\u00e0 ph\u1ea7n t\u1eed ph\u1ea3i hashable, thao t\u00e1c v\u1edbi set kh\u00e1c so v\u1edbi list hay tuple \u2014 \u0111\u1eb7c bi\u1ec7t l\u00e0 vi\u1ec7c x\u00f3a ph\u1ea7n t\u1eed.<\/p>\n","protected":false},"author":1,"featured_media":1754,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"googlesitekit_rrm_CAowieHDDA:productID":"","footnotes":""},"categories":[41],"tags":[40],"class_list":["post-1611","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\/1611","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=1611"}],"version-history":[{"count":3,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1611\/revisions"}],"predecessor-version":[{"id":2461,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1611\/revisions\/2461"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/media\/1754"}],"wp:attachment":[{"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/media?parent=1611"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/categories?post=1611"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/tags?post=1611"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}