{"id":1606,"date":"2025-09-29T15:41:17","date_gmt":"2025-09-29T08:41:17","guid":{"rendered":"https:\/\/kienthucmo.com\/?p=1606"},"modified":"2025-11-05T23:42:28","modified_gmt":"2025-11-05T16:42:28","slug":"gioi-thieu-ve-set-trong-python-va-cach-truy-cap-phan-tu-cua-set","status":"publish","type":"post","link":"https:\/\/kienthucmo.com\/vi\/gioi-thieu-ve-set-trong-python-va-cach-truy-cap-phan-tu-cua-set\/","title":{"rendered":"Gi\u1edbi thi\u1ec7u v\u1ec1 Set trong Python v\u00e0 c\u00e1ch truy c\u1eadp ph\u1ea7n t\u1eed c\u1ee7a Set"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Khi l\u00e0m vi\u1ec7c v\u1edbi d\u1eef li\u1ec7u trong Python, \u0111\u00f4i khi m\u00ecnh c\u1ea7n m\u1ed9t c\u1ea5u tr\u00fac d\u1eef li\u1ec7u gi\u00fap <strong>l\u01b0u tr\u1eef c\u00e1c ph\u1ea7n t\u1eed duy nh\u1ea5t<\/strong> v\u00e0 <strong>ki\u1ec3m tra membership (t\u1ed3n t\u1ea1i) nhanh<\/strong> \u2014 \u0111\u00f3 l\u00e0 l\u00fac <code>set<\/code> ph\u00e1t huy t\u00e1c d\u1ee5ng. <code>set<\/code> trong Python th\u00edch h\u1ee3p cho c\u00e1c b\u00e0i to\u00e1n lo\u1ea1i b\u1ecf ph\u1ea7n t\u1eed tr\u00f9ng l\u1eb7p, t\u00ecm giao\/h\u1ee3p\/hi\u1ec7u gi\u1eefa c\u00e1c t\u1eadp, v\u00e0 truy v\u1ea5n c\u00f3\/kh\u00f4ng (membership test) v\u1edbi hi\u1ec7u n\u0103ng cao. Tuy nhi\u00ean, v\u00ec b\u1ea3n ch\u1ea5t <strong>unordered<\/strong> (kh\u00f4ng c\u00f3 th\u1ee9 t\u1ef1) v\u00e0 <strong>kh\u00f4ng h\u1ed7 tr\u1ee3 indexing<\/strong>, c\u00e1ch &#8220;truy c\u1eadp ph\u1ea7n t\u1eed c\u1ee7a set&#8221; kh\u00e1c bi\u1ec7t r\u00f5 r\u1ec7t so v\u1edbi list hay tuple \u2014 m\u00ecnh s\u1ebd gi\u1ea3i th\u00edch k\u1ef9 t\u1eebng c\u00e1ch an to\u00e0n \u0111\u1ec3 truy c\u1eadp, thao t\u00e1c, v\u00e0 nh\u1eefng l\u01b0u \u00fd quan tr\u1ecdng khi d\u00f9ng set.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Set trong Python l\u00e0 g\u00ec? C\u00e1c \u0111\u1eb7c t\u00ednh ch\u00ednh<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Set<\/strong> l\u00e0 ki\u1ec3u d\u1eef li\u1ec7u t\u00edch h\u1ee3p trong Python bi\u1ec3u di\u1ec5n m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c ph\u1ea7n t\u1eed <strong>kh\u00f4ng tr\u00f9ng l\u1eb7p<\/strong>. \u0110\u00e2y l\u00e0 nh\u1eefng \u0111i\u1ec3m c\u1ea7n n\u1eafm r\u00f5:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Kh\u00f4ng c\u00f3 th\u1ee9 t\u1ef1 (unordered)<\/strong>\n<ul class=\"wp-block-list\">\n<li>C\u00e1c ph\u1ea7n t\u1eed trong set kh\u00f4ng \u0111\u01b0\u1ee3c l\u01b0u theo m\u1ed9t th\u1ee9 t\u1ef1 c\u1ed1 \u0111\u1ecbnh. Ta kh\u00f4ng th\u1ec3 d\u1ef1a v\u00e0o v\u1ecb tr\u00ed \u0111\u1ec3 truy c\u1eadp nh\u01b0 index <code>0<\/code>, <code>1<\/code> nh\u01b0 list\/tuple.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Ph\u1ea7n t\u1eed duy nh\u1ea5t (unique elements)<\/strong>\n<ul class=\"wp-block-list\">\n<li>N\u1ebfu th\u00eam ph\u1ea7n t\u1eed tr\u00f9ng, set t\u1ef1 lo\u1ea1i b\u1ecf tr\u00f9ng l\u1eb7p.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Mutable (c\u00f3 th\u1ec3 thay \u0111\u1ed5i)<\/strong>\n<ul class=\"wp-block-list\">\n<li>Ta c\u00f3 th\u1ec3 th\u00eam, x\u00f3a ph\u1ea7n t\u1eed kh\u1ecfi set sau khi t\u1ea1o (tr\u1eeb <code>frozenset<\/code> \u2014 bi\u1ebfn th\u1ec3 b\u1ea5t bi\u1ebfn c\u1ee7a set).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Y\u00eau c\u1ea7u hashable elements<\/strong>\n<ul class=\"wp-block-list\">\n<li>M\u1ed7i ph\u1ea7n t\u1eed trong set ph\u1ea3i l\u00e0 <strong>hashable<\/strong> (v\u00ed d\u1ee5: s\u1ed1, chu\u1ed7i, tuple c\u00f3 ph\u1ea7n t\u1eed hashable). C\u00e1c ki\u1ec3u mutable nh\u01b0 list\/dict kh\u00f4ng th\u1ec3 l\u00e0m ph\u1ea7n t\u1eed set.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Hi\u1ec7u n\u0103ng<\/strong>\n<ul class=\"wp-block-list\">\n<li>C\u00e1c ph\u00e9p ki\u1ec3m tra membership (<code>in<\/code>) th\u01b0\u1eddng c\u00f3 th\u1eddi gian trung b\u00ecnh O(1), r\u1ea5t nhanh so v\u1edbi list.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ed d\u1ee5 ng\u1eafn:<\/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 with unique values\nfruits_set = {\"apple\", \"banana\", \"orange\", \"apple\"}  # duplicate \"apple\" is ignored\n\nprint(fruits_set)\n# Output example: {'banana', 'orange', 'apple'}<\/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 with unique values<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">fruits_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\">orange<\/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\">apple<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># duplicate &quot;apple&quot; is ignored<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">fruits_set<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Output example: {&#39;banana&#39;, &#39;orange&#39;, &#39;apple&#39;}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">2. C\u00e1ch khai b\u00e1o v\u00e0 kh\u1edfi t\u1ea1o Set<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00fa ph\u00e1p c\u01a1 b\u1ea3n \u0111\u1ec3 t\u1ea1o set:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>D\u00f9ng d\u1ea5u ngo\u1eb7c nh\u1ecdn <code>{}<\/code> ch\u1ee9a c\u00e1c ph\u1ea7n t\u1eed (nh\u01b0 literal), ho\u1eb7c<\/li>\n\n\n\n<li>D\u00f9ng <code>set()<\/code> constructor (khuy\u1ebfn ngh\u1ecb khi t\u1ea1o t\u1eeb iterable nh\u01b0 list).<\/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 using literal\ncolors = {\"red\", \"green\", \"blue\"}  # comment in English\n\n# Create a set from a list (constructor)\nnumbers_set = set(&#91;1, 2, 3, 3, 4&#93;)  # duplicates removed\n\nprint(colors)        # Example output: {'blue', 'red', 'green'}\nprint(numbers_set)   # Example output: {1, 2, 3, 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\"># Create a set using literal<\/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 style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># comment in English<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Create a set from a list (constructor)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">numbers_set <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">set<\/span><span style=\"color: #ECEFF4\">(&#91;<\/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\">3<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># duplicates removed<\/span><\/span>\n<span class=\"line\"><\/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\"># Example output: {&#39;blue&#39;, &#39;red&#39;, &#39;green&#39;}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">numbers_set<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #616E88\"># Example output: {1, 2, 3, 4}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">L\u01b0u \u00fd \u0111\u1eb7c bi\u1ec7t: <code>{}<\/code> t\u1ea1o ra <em>empty dict<\/em>, kh\u00f4ng ph\u1ea3i empty set. \u0110\u1ec3 t\u1ea1o empty set, d\u00f9ng <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>empty_set = set()<\/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\">empty_set <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">set<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">3. Truy c\u1eadp ph\u1ea7n t\u1eed c\u1ee7a Set \u2014 nh\u1eefng \u0111i\u1ec1u c\u1ea7n bi\u1ebft<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00ec set l\u00e0 <strong>unordered<\/strong> v\u00e0 <strong>kh\u00f4ng h\u1ed7 tr\u1ee3 indexing<\/strong>, ta <strong>kh\u00f4ng th\u1ec3<\/strong> l\u00e0m <code>s[0]<\/code> nh\u01b0 list. Tuy nhi\u00ean c\u00f3 nhi\u1ec1u c\u00e1ch h\u1ee3p l\u1ec7 \u0111\u1ec3 &#8220;truy c\u1eadp&#8221; ho\u1eb7c l\u1ea5y ph\u1ea7n t\u1eed t\u1eeb set \u2014 m\u00ecnh s\u1ebd tr\u00ecnh b\u00e0y t\u1eebng c\u00e1ch, k\u00e8m v\u00ed d\u1ee5 v\u00e0 gi\u1ea3i th\u00edch khi n\u00e0o n\u00ean d\u00f9ng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.1 Duy\u1ec7t (iterate) \u2014 c\u00e1ch ph\u1ed5 bi\u1ebfn nh\u1ea5t \u0111\u1ec3 truy c\u1eadp t\u1eebng ph\u1ea7n t\u1eed<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">S\u1eed d\u1ee5ng v\u00f2ng l\u1eb7p <code>for<\/code> \u0111\u1ec3 l\u1ea5y t\u1eebng 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># Iterate through set elements\nfruits_set = {\"apple\", \"banana\", \"cherry\"}\n\nfor fruit in fruits_set:\n    # English comment: print each fruit in the set\n    print(fruit)\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\"># Iterate through set elements<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">fruits_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>\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\"> fruits_set<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #616E88\"># English comment: print each fruit in the set<\/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\">fruit<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Gi\u1ea3i th\u00edch: \u0111\u00e2y l\u00e0 c\u00e1ch an to\u00e0n nh\u1ea5t \u0111\u1ec3 &#8220;truy c\u1eadp&#8221; m\u1ecdi ph\u1ea7n t\u1eed. Th\u1ee9 t\u1ef1 duy\u1ec7t kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ea3m b\u1ea3o.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.2 Ki\u1ec3m tra t\u1ed3n t\u1ea1i (membership test) \u2014 truy v\u1ea5n nhanh m\u1ed9t ph\u1ea7n t\u1eed c\u00f3 trong set hay kh\u00f4ng<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">S\u1eed d\u1ee5ng <code>in<\/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># Membership test\nif \"banana\" in fruits_set:\n    # English comment: 'banana' exists in the set\n    print(\"Banana is 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: #616E88\"># Membership test<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">if<\/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: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> fruits_set<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #616E88\"># English comment: &#39;banana&#39; exists in the set<\/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\">Banana is present<\/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 class=\"wp-block-paragraph\">Gi\u1ea3i th\u00edch: \u0111\u00e2y l\u00e0 thao t\u00e1c c\u1ef1c nhanh (O(1) trung b\u00ecnh). R\u1ea5t h\u1eefu \u00edch khi b\u1ea1n ch\u1ec9 c\u1ea7n bi\u1ebft ph\u1ea7n t\u1eed c\u00f3 hay kh\u00f4ng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.3 L\u1ea5y m\u1ed9t ph\u1ea7n t\u1eed b\u1ea5t k\u1ef3: <code>next(iter(s))<\/code> v\u00e0 <code>pop()<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>next(iter(s))<\/code> tr\u1ea3 gi\u00e1 tr\u1ecb \u0111\u1ea7u ti\u00ean c\u1ee7a iterator set (m\u1ed9t ph\u1ea7n t\u1eed b\u1ea5t k\u1ef3, kh\u00f4ng c\u00f3 th\u1ee9 t\u1ef1 x\u00e1c \u0111\u1ecbnh).<\/li>\n\n\n\n<li><code>pop()<\/code> lo\u1ea1i b\u1ecf v\u00e0 tr\u1ea3 v\u1ec1 m\u1ed9t ph\u1ea7n t\u1eed b\u1ea5t k\u1ef3 (thay \u0111\u1ed5i set).<\/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># Get an arbitrary element without removing it\nsample_set = {\"a\", \"b\", \"c\"}\narbitrary = next(iter(sample_set))  # English comment: get one element via iterator\nprint(arbitrary)\n\n# Remove and get an arbitrary element\nremoved = sample_set.pop()  # English comment: pop removes and returns an arbitrary element\nprint(removed)\nprint(sample_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\"># Get an arbitrary element without removing it<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">sample_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\">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\">arbitrary <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">next<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">iter<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">sample_set<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># English comment: get one element via iterator<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">arbitrary<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Remove and get an arbitrary element<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">removed <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> sample_set<\/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\"># English comment: pop removes and returns an arbitrary element<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">removed<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">sample_set<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Gi\u1ea3i th\u00edch: d\u00f9ng <code>next(iter(...))<\/code> khi mu\u1ed1n <em>xem<\/em> m\u1ed9t ph\u1ea7n t\u1eed b\u1ea5t k\u1ef3 m\u00e0 kh\u00f4ng s\u1eeda set. D\u00f9ng <code>pop()<\/code> n\u1ebfu b\u1ea1n mu\u1ed1n <em>l\u1ea5y v\u00e0 lo\u1ea1i b\u1ecf<\/em> m\u1ed9t ph\u1ea7n t\u1eed (v\u00ed d\u1ee5 trong thu\u1eadt to\u00e1n ki\u1ec3u FIFO\/stack khi th\u1ee9 t\u1ef1 kh\u00f4ng c\u1ea7n quan t\u00e2m).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.4 Chuy\u1ec3n sang list\/tuple \u0111\u1ec3 d\u00f9ng indexing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">N\u1ebfu th\u1ef1c s\u1ef1 c\u1ea7n truy c\u1eadp theo ch\u1ec9 s\u1ed1 (v\u00ed d\u1ee5 l\u1ea5y ph\u1ea7n t\u1eed th\u1ee9 i), chuy\u1ec3n set sang list\/tuple:<\/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>my_set = {\"apple\", \"banana\", \"cherry\"}\nmy_list = list(my_set)  # English comment: convert set to list for indexed access\n\n# Now you can index\nsecond_item = my_list&#91;1&#93;\nprint(second_item)\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\">my_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: #D8DEE9FF\">my_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\">my_set<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># English comment: convert set to list for indexed access<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Now you can index<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">second_item <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> my_list<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">second_item<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Gi\u1ea3i th\u00edch: chuy\u1ec3n \u0111\u1ed5i n\u00e0y c\u00f3 chi ph\u00ed O(n) v\u00e0 <strong>th\u1ee9 t\u1ef1 ph\u1ea7n t\u1eed do list c\u00f3 th\u1ec3 kh\u00e1c gi\u1eefa c\u00e1c l\u1ea7n<\/strong>, v\u00ec v\u1eady ch\u1ec9 d\u00f9ng khi b\u1ea1n ch\u1ea5p nh\u1eadn m\u1ea5t th\u1ee9 t\u1ef1 g\u1ed1c v\u00e0 chi ph\u00ed chuy\u1ec3n \u0111\u1ed5i.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.5 Unpack (g\u00f3i\/gi\u1ea3i n\u00e9n) set v\u00e0o bi\u1ebfn<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">B\u1ea1n c\u00f3 th\u1ec3 unpack set v\u00e0o nhi\u1ec1u bi\u1ebfn (l\u01b0u \u00fd s\u1ed1 ph\u1ea7n t\u1eed ph\u1ea3i kh\u1edbp):<\/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>coordinates_set = { (1,2), (3,4) }\n# English comment: unpack set into variables (order not guaranteed)\na, b = coordinates_set\nprint(a, b)\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\">coordinates_set <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/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\">2<\/span><span style=\"color: #ECEFF4\">),<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># English comment: unpack set into variables (order not guaranteed)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">a<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> b <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> coordinates_set<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">a<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> b<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Gi\u1ea3i th\u00edch: unpack d\u00f9ng khi b\u1ea1n bi\u1ebft ch\u00ednh x\u00e1c s\u1ed1 ph\u1ea7n t\u1eed mu\u1ed1n l\u1ea5y, nh\u01b0ng kh\u00f4ng n\u00ean d\u1ef1a v\u00e0o th\u1ee9 t\u1ef1.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.6 D\u00f9ng <code>enumerate()<\/code> khi c\u1ea7n index gi\u1ea3 \u0111\u1ecbnh<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">B\u1ea1n c\u00f3 th\u1ec3 k\u1ebft h\u1ee3p <code>enumerate()<\/code> v\u1edbi v\u00f2ng l\u1eb7p \u0111\u1ec3 g\u00e1n ch\u1ec9 s\u1ed1 t\u1ea1m th\u1eddi khi duy\u1ec7t:<\/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>for index, value in enumerate(fruits_set):\n    # English comment: enumerate gives a running index while iterating\n    print(index, value)\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\">for<\/span><span style=\"color: #D8DEE9FF\"> index<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> value <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">enumerate<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">fruits_set<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #616E88\"># English comment: enumerate gives a running index while iterating<\/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\">index<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> value<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Gi\u1ea3i th\u00edch: ch\u1ec9 s\u1ed1 n\u00e0y l\u00e0 <em>index c\u1ee7a l\u1ea7n l\u1eb7p<\/em>, kh\u00f4ng ph\u1ea3n \u00e1nh m\u1ed9t v\u1ecb tr\u00ed c\u1ed1 \u0111\u1ecbnh trong set.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. C\u00e1c ph\u00e9p to\u00e1n &amp; thao t\u00e1c th\u01b0\u1eddng g\u1eb7p (li\u00ean quan t\u1edbi truy c\u1eadp t\u1eadp con)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1eb7c d\u00f9 kh\u00f4ng thu\u1ed9c &#8220;truy c\u1eadp theo index&#8221;, nhi\u1ec1u thao t\u00e1c t\u1eadp h\u1ee3p r\u1ea5t h\u1eefu \u00edch \u0111\u1ec3 truy v\u1ea5n v\u00e0 tr\u00edch ph\u1ea7n t\u1eed theo \u0111i\u1ec1u ki\u1ec7n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>union<\/code>, <code>intersection<\/code>, <code>difference<\/code>, <code>symmetric_difference<\/code> \u2014 ph\u00e9p to\u00e1n l\u00fd t\u01b0\u1edfng cho so s\u00e1nh t\u1eadp.<\/li>\n\n\n\n<li><code>issubset<\/code>, <code>issuperset<\/code>, <code>isdisjoint<\/code> \u2014 ki\u1ec3m tra quan h\u1ec7 t\u1eadp con.<\/li>\n\n\n\n<li>Comprehension: t\u1ea1o set m\u1edbi th\u1ecfa \u0111i\u1ec1u ki\u1ec7n.<\/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># Set operations\na = {1, 2, 3, 4}\nb = {3, 4, 5, 6}\n\n# English comments: union, intersection, difference\nunion_set = a.union(b)\nintersection_set = a.intersection(b)\ndifference_set = a.difference(b)\n\n# Set comprehension example\neven_set = {x for x in a if x % 2 == 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\"># Set operations<\/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: #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: #D8DEE9FF\">b <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/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>\n<span class=\"line\"><span style=\"color: #616E88\"># English comments: union, intersection, difference<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">union_set <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> a<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">union<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">b<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">intersection_set <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> a<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">intersection<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">b<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">difference_set <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> a<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">difference<\/span><span style=\"color: #ECEFF4\">(<\/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\"># Set comprehension example<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">even_set <\/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\"> a <\/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><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Gi\u1ea3i th\u00edch: nh\u1eefng ph\u00e9p to\u00e1n n\u00e0y th\u01b0\u1eddng r\u1ebb v\u1ec1 m\u1eb7t hi\u1ec7u n\u0103ng v\u00e0 gi\u00fap &#8220;truy xu\u1ea5t&#8221; c\u00e1c ph\u1ea7n t\u1eed theo ti\u00eau ch\u00ed (v\u00ed d\u1ee5 l\u1ea5y ph\u1ea7n t\u1eed giao gi\u1eefa hai t\u1eadp).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Khi n\u00e0o n\u00ean d\u00f9ng Set? L\u01b0u \u00fd v\u00e0 best-practices<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">M\u00ecnh hay d\u00f9ng <code>set<\/code> trong c\u00e1c t\u00ecnh hu\u1ed1ng:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lo\u1ea1i b\u1ecf tr\u00f9ng l\u1eb7p<\/strong> trong m\u1ed9t danh s\u00e1ch l\u1edbn: <code>unique = set(my_list)<\/code>.<\/li>\n\n\n\n<li><strong>Ki\u1ec3m tra membership nhanh<\/strong>: nhi\u1ec1u truy v\u1ea5n <code>in<\/code> c\u1ea7n hi\u1ec7u n\u0103ng cao.<\/li>\n\n\n\n<li><strong>To\u00e1n h\u1ecdc t\u1eadp h\u1ee3p<\/strong>: giao\/h\u1ee3p\/hi\u1ec7u gi\u1eefa c\u00e1c nh\u00f3m ph\u1ea7n t\u1eed.<\/li>\n\n\n\n<li><strong>Khi ph\u1ea7n t\u1eed l\u00e0 hashable<\/strong> (chu\u1ed7i, s\u1ed1, tuple ch\u1ee9a c\u00e1c ph\u1ea7n t\u1eed hashable).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">L\u01b0u \u00fd quan tr\u1ecdng:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Kh\u00f4ng d\u00f9ng set n\u1ebfu c\u1ea7n th\u1ee9 t\u1ef1 c\u1ed1 \u0111\u1ecbnh<\/strong> ho\u1eb7c mu\u1ed1n truy c\u1eadp theo ch\u1ec9 s\u1ed1 v\u1edbi th\u1ee9 t\u1ef1 \u0111\u1ea3m b\u1ea3o. Trong tr\u01b0\u1eddng h\u1ee3p \u0111\u00f3, d\u00f9ng <code>list<\/code> ho\u1eb7c <code>tuple<\/code>.<\/li>\n\n\n\n<li><strong>Kh\u00f4ng th\u1ec3 ch\u1ee9a c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng kh\u00f4ng hashable<\/strong> (list, dict).<\/li>\n\n\n\n<li>N\u1ebfu c\u1ea7n t\u1eadp b\u1ea5t bi\u1ebfn, d\u00f9ng <code>frozenset<\/code> (immutable set).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">6. V\u00ed d\u1ee5 th\u1ef1c t\u1ebf c\u00f3 ch\u00fa th\u00edch (comments in English)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">M\u1ed9t v\u00ed d\u1ee5 t\u1ed5ng h\u1ee3p: lo\u1ea1i b\u1ecf ph\u1ea7n t\u1eed tr\u00f9ng, ki\u1ec3m tra membership v\u00e0 l\u1ea5y ph\u1ea7n t\u1eed b\u1ea5t k\u1ef3:<\/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># English comments: sample workflow using set\nraw_names = &#91;\"Alice\", \"Bob\", \"Alice\", \"Eve\", \"Bob\"&#93;\n\n# Remove duplicates\nunique_names = set(raw_names)  # English comment: convert list to set to remove duplicates\n\n# Check membership\nif \"Eve\" in unique_names:\n    # English comment: 'Eve' exists in unique_names\n    print(\"Eve found\")\n\n# Get one arbitrary element without removing\none_name = next(iter(unique_names))  # English comment: peek one element\nprint(\"One name:\", one_name)\n\n# Safely remove and get an element\nsome_name = unique_names.pop()  # English comment: pop removes an arbitrary element\nprint(\"Popped:\", some_name)<\/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\"># English comments: sample workflow using set<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">raw_names <\/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\">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\">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\">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\">Eve<\/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\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Remove duplicates<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">unique_names <\/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: #D8DEE9FF\">raw_names<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># English comment: convert list to set to remove duplicates<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Check membership<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Eve<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> unique_names<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #616E88\"># English comment: &#39;Eve&#39; exists in unique_names<\/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\">Eve 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\"># Get one arbitrary element without removing<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">one_name <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">next<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">iter<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">unique_names<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># English comment: peek one element<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">One name:<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> one_name<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Safely remove and get an element<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">some_name <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> unique_names<\/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\"># English comment: pop removes an arbitrary element<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Popped:<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> some_name<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">7. K\u1ebft lu\u1eadn<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>set<\/code> trong Python l\u00e0 c\u00f4ng c\u1ee5 m\u1ea1nh m\u1ebd cho c\u00e1c b\u00e0i to\u00e1n li\u00ean quan t\u1edbi <strong>t\u00ednh duy nh\u1ea5t c\u1ee7a ph\u1ea7n t\u1eed<\/strong>, <strong>ki\u1ec3m tra membership nhanh<\/strong>, v\u00e0 <strong>to\u00e1n h\u1ecdc t\u1eadp h\u1ee3p<\/strong>. V\u00ec b\u1ea3n ch\u1ea5t <strong>kh\u00f4ng c\u00f3 th\u1ee9 t\u1ef1<\/strong> n\u00ean <strong>truy c\u1eadp ph\u1ea7n t\u1eed c\u1ee7a set<\/strong> kh\u00e1c bi\u1ec7t: ta kh\u00f4ng d\u00f9ng indexing m\u00e0 d\u00f9ng <strong>iteration<\/strong>, <strong>membership test<\/strong>, <strong>next(iter(&#8230;))<\/strong>, <strong>pop()<\/strong>, ho\u1eb7c <strong>chuy\u1ec3n \u0111\u1ed5i sang list\/tuple<\/strong> khi th\u1ef1c s\u1ef1 c\u1ea7n index. Bi\u1ebft r\u00f5 \u01b0u \u2013 nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a set s\u1ebd gi\u00fap b\u1ea1n ch\u1ecdn c\u1ea5u tr\u00fac ph\u00f9 h\u1ee3p cho b\u00e0i to\u00e1n, tr\u00e1nh l\u1ed7i do k\u1ef3 v\u1ecdng th\u1ee9 t\u1ef1 ho\u1eb7c c\u1ed1 g\u1eafng d\u00f9ng ki\u1ec3u ph\u1ea7n t\u1eed kh\u00f4ng hashable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8. T\u00e0i li\u1ec7u tham kh\u1ea3o<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Python Software Foundation. <em>Built-in Types \u2014 set<\/em> \u2014 Python documentation. Truy c\u1eadp t\u1ea1i: <a>https:\/\/docs.python.org\/3\/library\/stdtypes.html#set-types-set-frozenset<\/a><\/li>\n\n\n\n<li>Real Python. <em>Python Sets: Tutorial with Examples<\/em>. Truy c\u1eadp t\u1ea1i: <a>https:\/\/realpython.com\/python-sets\/<\/a><\/li>\n\n\n\n<li>W3Schools. <em>Python Sets<\/em>. Truy c\u1eadp t\u1ea1i: <a>https:\/\/www.w3schools.com\/python\/python_sets.asp<\/a><\/li>\n\n\n\n<li>GeeksforGeeks. <em>Set in Python<\/em>. Truy c\u1eadp t\u1ea1i: <a>https:\/\/www.geeksforgeeks.org\/python-set\/<\/a><\/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 d\u1eef li\u1ec7u trong Python, \u0111\u00f4i khi m\u00ecnh c\u1ea7n m\u1ed9t c\u1ea5u tr\u00fac d\u1eef li\u1ec7u gi\u00fap l\u01b0u tr\u1eef c\u00e1c ph\u1ea7n t\u1eed duy nh\u1ea5t v\u00e0 ki\u1ec3m tra membership (t\u1ed3n t\u1ea1i) nhanh \u2014 \u0111\u00f3 l\u00e0 l\u00fac set ph\u00e1t huy t\u00e1c d\u1ee5ng. set trong Python th\u00edch h\u1ee3p cho c\u00e1c b\u00e0i to\u00e1n lo\u1ea1i b\u1ecf ph\u1ea7n t\u1eed tr\u00f9ng l\u1eb7p, t\u00ecm giao\/h\u1ee3p\/hi\u1ec7u gi\u1eefa c\u00e1c t\u1eadp, v\u00e0 truy v\u1ea5n c\u00f3\/kh\u00f4ng (membership test) v\u1edbi hi\u1ec7u n\u0103ng cao.<\/p>\n","protected":false},"author":1,"featured_media":1742,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"googlesitekit_rrm_CAowieHDDA:productID":"","footnotes":""},"categories":[41],"tags":[40],"class_list":["post-1606","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\/1606","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=1606"}],"version-history":[{"count":3,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1606\/revisions"}],"predecessor-version":[{"id":2460,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/posts\/1606\/revisions\/2460"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/media\/1742"}],"wp:attachment":[{"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/media?parent=1606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/categories?post=1606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kienthucmo.com\/vi\/wp-json\/wp\/v2\/tags?post=1606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}