{"id":401,"date":"2025-03-18T15:22:56","date_gmt":"2025-03-18T15:22:56","guid":{"rendered":"https:\/\/news.techjunior.vn\/?p=401"},"modified":"2025-03-18T15:22:56","modified_gmt":"2025-03-18T15:22:56","slug":"%f0%9f%9a%80-generator-trong-python-cong-cu-xu-ly-du-lieu-lon-ma-khong-ton-ram-%f0%9f%90%8d%f0%9f%92%a1","status":"publish","type":"post","link":"https:\/\/news.techjunior.vn\/?p=401","title":{"rendered":"\ud83d\ude80 GENERATOR TRONG PYTHON \u2013 C\u00d4NG C\u1ee4 X\u1eec L\u00dd D\u1eee LI\u1ec6U L\u1edaN M\u00c0 KH\u00d4NG T\u1ed0N RAM! \ud83d\udc0d\ud83d\udca1"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"369\" src=\"https:\/\/news.techjunior.vn\/wp-content\/uploads\/2025\/03\/Generator-la-gi-2.jpg\" alt=\"\" class=\"wp-image-402\" srcset=\"https:\/\/news.techjunior.vn\/wp-content\/uploads\/2025\/03\/Generator-la-gi-2.jpg 750w, https:\/\/news.techjunior.vn\/wp-content\/uploads\/2025\/03\/Generator-la-gi-2-300x148.jpg 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/figure>\n<\/div>\n\n\n<p>B\u1ea1n \u0111\u00e3 bao gi\u1edd g\u1eb7p t\u00ecnh hu\u1ed1ng c\u1ea7n x\u1eed l\u00fd m\u1ed9t <strong>t\u1eadp d\u1eef li\u1ec7u kh\u1ed5ng l\u1ed3<\/strong>, nh\u01b0ng ch\u01b0\u01a1ng tr\u00ecnh l\u1ea1i ch\u1ea1y ch\u1eadm ho\u1eb7c th\u1eadm ch\u00ed b\u1ecb \u201c\u0111\u01a1\u201d do h\u1ebft RAM? \ud83d\ude31 N\u1ebfu b\u1ea1n \u0111ang d\u00f9ng danh s\u00e1ch (<code>list<\/code>) \u0111\u1ec3 l\u01b0u tr\u1eef d\u1eef li\u1ec7u l\u1edbn, b\u1ea1n \u0111ang <strong>l\u00e3ng ph\u00ed b\u1ed9 nh\u1edb kh\u00f4ng c\u1ea7n thi\u1ebft<\/strong>!<\/p>\n\n\n\n<p>Gi\u1ea3i ph\u00e1p \u1edf \u0111\u00e2y ch\u00ednh l\u00e0 <strong>GENERATOR<\/strong> \u2013 m\u1ed9t c\u00f4ng c\u1ee5 m\u1ea1nh m\u1ebd gi\u00fap <strong>ti\u1ebft ki\u1ec7m b\u1ed9 nh\u1edb, t\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t, v\u00e0 gi\u00fap code Python ch\u1ea1y nhanh h\u01a1n!<\/strong> \ud83d\ude80<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf <strong>1. Generator l\u00e0 g\u00ec?<\/strong><\/h2>\n\n\n\n<p>Generator trong Python l\u00e0 m\u1ed9t c\u00e1ch <strong>t\u1ea1o d\u1eef li\u1ec7u theo y\u00eau c\u1ea7u<\/strong>, thay v\u00ec l\u01b0u tr\u1eef t\u1ea5t c\u1ea3 d\u1eef li\u1ec7u trong b\u1ed9 nh\u1edb nh\u01b0 <code>list<\/code>.<\/p>\n\n\n\n<p>\ud83d\udd39 Khi b\u1ea1n d\u00f9ng <code>list<\/code>, Python ph\u1ea3i <strong>t\u1ea1o v\u00e0 l\u01b0u tr\u1eef to\u00e0n b\u1ed9 d\u1eef li\u1ec7u<\/strong> trong RAM, d\u00f9 b\u1ea1n c\u00f3 d\u00f9ng h\u1ebft hay kh\u00f4ng.<br>\ud83d\udd39 Khi d\u00f9ng <strong>Generator<\/strong>, Python <strong>ch\u1ec9 t\u1ea1o d\u1eef li\u1ec7u khi b\u1ea1n c\u1ea7n<\/strong>, gi\u00fap ti\u1ebft ki\u1ec7m RAM \u0111\u00e1ng k\u1ec3!<\/p>\n\n\n\n<p>\ud83d\udee0 <strong>Generator ho\u1ea1t \u0111\u1ed9ng nh\u1edd t\u1eeb kh\u00f3a <code>yield<\/code>, thay v\u00ec <code>return<\/code>.<\/strong><\/p>\n\n\n\n<p>\ud83d\udca1 <strong>T\u00f3m l\u1ea1i:<\/strong><br>\u2705 <strong>Kh\u00f4ng c\u1ea7n l\u01b0u t\u1ea5t c\u1ea3 d\u1eef li\u1ec7u v\u00e0o b\u1ed9 nh\u1edb.<\/strong><br>\u2705 <strong>Ch\u1ec9 t\u1ea1o gi\u00e1 tr\u1ecb khi c\u1ea7n, gi\u00fap ti\u1ebft ki\u1ec7m t\u00e0i nguy\u00ean.<\/strong><br>\u2705 <strong>Ph\u00f9 h\u1ee3p v\u1edbi d\u1eef li\u1ec7u l\u1edbn, streaming, API, \u0111\u1ecdc file\u2026<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf <strong>2. Generator ho\u1ea1t \u0111\u1ed9ng nh\u01b0 th\u1ebf n\u00e0o?<\/strong><\/h2>\n\n\n\n<p>Khi g\u1ecdi m\u1ed9t h\u00e0m th\u00f4ng th\u01b0\u1eddng, ch\u01b0\u01a1ng tr\u00ecnh s\u1ebd <strong>ch\u1ea1y to\u00e0n b\u1ed9 h\u00e0m, tr\u1ea3 v\u1ec1 m\u1ed9t gi\u00e1 tr\u1ecb r\u1ed3i k\u1ebft th\u00fac<\/strong>. Nh\u01b0ng v\u1edbi <strong>Generator<\/strong>, m\u1ecdi th\u1ee9 ho\u1ea1t \u0111\u1ed9ng linh ho\u1ea1t h\u01a1n:<\/p>\n\n\n\n<p>\ud83d\udd39 Khi g\u1ecdi m\u1ed9t Generator, n\u00f3 <strong>tr\u1ea3 v\u1ec1 m\u1ed9t iterator<\/strong> nh\u01b0ng <strong>kh\u00f4ng ch\u1ea1y ngay l\u1eadp t\u1ee9c<\/strong>.<br>\ud83d\udd39 Khi g\u1ecdi <code>next()<\/code>, n\u00f3 s\u1ebd <strong>t\u1ea1o m\u1ed9t gi\u00e1 tr\u1ecb r\u1ed3i t\u1ea1m d\u1eebng<\/strong>, ch\u1edd l\u1ea7n g\u1ecdi ti\u1ebfp theo.<br>\ud83d\udd39 N\u00f3 <strong>gi\u1eef nguy\u00ean tr\u1ea1ng th\u00e1i<\/strong> c\u1ee7a h\u00e0m (bi\u1ebfn, v\u1ecb tr\u00ed v\u00f2ng l\u1eb7p&#8230;), gi\u00fap ti\u1ebft ki\u1ec7m b\u1ed9 nh\u1edb.<br>\ud83d\udd39 Khi kh\u00f4ng c\u00f2n gi\u00e1 tr\u1ecb, n\u00f3 s\u1ebd <strong>t\u1ef1 \u0111\u1ed9ng d\u1eebng<\/strong>, kh\u00f4ng c\u1ea7n ki\u1ec3m so\u00e1t th\u1ee7 c\u00f4ng.<\/p>\n\n\n\n<p>\ud83d\udca1 <strong>S\u1ef1 kh\u00e1c bi\u1ec7t so v\u1edbi <code>list<\/code><\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>T\u00ednh n\u0103ng<\/th><th>List<\/th><th>Generator<\/th><\/tr><\/thead><tbody><tr><td><strong>B\u1ed9 nh\u1edb<\/strong><\/td><td>L\u01b0u to\u00e0n b\u1ed9 d\u1eef li\u1ec7u<\/td><td>Ch\u1ec9 t\u1ea1o t\u1eebng gi\u00e1 tr\u1ecb khi c\u1ea7n<\/td><\/tr><tr><td><strong>Hi\u1ec7u su\u1ea5t<\/strong><\/td><td>C\u00f3 th\u1ec3 ch\u1eadm n\u1ebfu d\u1eef li\u1ec7u l\u1edbn<\/td><td>T\u1ed1i \u01b0u t\u1ed1c \u0111\u1ed9 x\u1eed l\u00fd<\/td><\/tr><tr><td><strong>Linh ho\u1ea1t<\/strong><\/td><td>Ph\u1ea3i t\u1ea1o to\u00e0n b\u1ed9 tr\u01b0\u1edbc<\/td><td>C\u00f3 th\u1ec3 t\u1ea1o li\u00ean t\u1ee5c khi c\u1ea7n<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf <strong>3. Khi n\u00e0o n\u00ean d\u00f9ng Generator?<\/strong><\/h2>\n\n\n\n<p>Generator l\u00e0 <strong>v\u0169 kh\u00ed t\u1ed1i th\u01b0\u1ee3ng<\/strong> khi l\u00e0m vi\u1ec7c v\u1edbi <strong>d\u1eef li\u1ec7u l\u1edbn<\/strong> ho\u1eb7c <strong>d\u1eef li\u1ec7u \u0111\u1ed9ng<\/strong>. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 \u1ee9ng d\u1ee5ng ph\u1ed5 bi\u1ebfn:<\/p>\n\n\n\n<p>\u2705 <strong>\u0110\u1ecdc file l\u1edbn:<\/strong> Khi b\u1ea1n c\u1ea7n x\u1eed l\u00fd m\u1ed9t file c\u00f3 h\u00e0ng tri\u1ec7u d\u00f2ng, thay v\u00ec \u0111\u1ecdc t\u1ea5t c\u1ea3 v\u00e0o b\u1ed9 nh\u1edb, h\u00e3y \u0111\u1ecdc t\u1eebng d\u00f2ng b\u1eb1ng Generator.<br>\u2705 <strong>X\u1eed l\u00fd d\u1eef li\u1ec7u streaming:<\/strong> Khi nh\u1eadn d\u1eef li\u1ec7u t\u1eeb API ho\u1eb7c sensor IoT, b\u1ea1n kh\u00f4ng th\u1ec3 l\u01b0u to\u00e0n b\u1ed9 d\u1eef li\u1ec7u \u2013 Generator gi\u00fap b\u1ea1n x\u1eed l\u00fd t\u1eebng ph\u1ea7n.<br>\u2705 <strong>L\u00e0m vi\u1ec7c v\u1edbi database:<\/strong> Khi truy v\u1ea5n h\u00e0ng tri\u1ec7u b\u1ea3n ghi, Generator gi\u00fap b\u1ea1n l\u1ea5y t\u1eebng d\u00f2ng m\u00e0 kh\u00f4ng b\u1ecb qu\u00e1 t\u1ea3i b\u1ed9 nh\u1edb.<br>\u2705 <strong>T\u1ea1o d\u00e3y s\u1ed1 l\u1edbn:<\/strong> N\u1ebfu b\u1ea1n c\u1ea7n t\u1ea1o m\u1ed9t d\u00e3y s\u1ed1 l\u1edbn (v\u00ed d\u1ee5: Fibonacci, s\u1ed1 nguy\u00ean t\u1ed1\u2026), Generator gi\u00fap b\u1ea1n t\u1ea1o t\u1eebng s\u1ed1 khi c\u1ea7n m\u00e0 kh\u00f4ng ph\u1ea3i gi\u1eef to\u00e0n b\u1ed9 d\u00e3y trong RAM.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf <strong>4. \u01afu \u0111i\u1ec3m v\u00e0 Nh\u01b0\u1ee3c \u0111i\u1ec3m c\u1ee7a Generator<\/strong><\/h2>\n\n\n\n<p>\ud83d\udd39 <strong>\u01afu \u0111i\u1ec3m:<\/strong><br>\u2705 <strong>Si\u00eau ti\u1ebft ki\u1ec7m RAM<\/strong> \u2013 ch\u1ec9 gi\u1eef m\u1ed9t ph\u1ea7n t\u1eed t\u1ea1i m\u1ed9t th\u1eddi \u0111i\u1ec3m.<br>\u2705 <strong>T\u0103ng t\u1ed1c \u0111\u1ed9 x\u1eed l\u00fd<\/strong> \u2013 kh\u00f4ng c\u1ea7n t\u1ea1o to\u00e0n b\u1ed9 danh s\u00e1ch tr\u01b0\u1edbc.<br>\u2705 <strong>Linh ho\u1ea1t h\u01a1n<\/strong> \u2013 l\u00e0m vi\u1ec7c t\u1ed1t v\u1edbi d\u1eef li\u1ec7u \u0111\u1ed9ng ho\u1eb7c v\u00f4 h\u1ea1n.<\/p>\n\n\n\n<p>\ud83d\udd39 <strong>Nh\u01b0\u1ee3c \u0111i\u1ec3m:<\/strong><br>\u274c <strong>Kh\u00f4ng th\u1ec3 truy c\u1eadp l\u1ea1i d\u1eef li\u1ec7u tr\u01b0\u1edbc \u0111\u00f3<\/strong> \u2013 Generator ch\u1ec9 ch\u1ea1y m\u1ed9t l\u1ea7n, kh\u00f4ng l\u01b0u to\u00e0n b\u1ed9 gi\u00e1 tr\u1ecb.<br>\u274c <strong>Kh\u00f4ng h\u1ed7 tr\u1ee3 indexing nh\u01b0 list<\/strong> \u2013 B\u1ea1n kh\u00f4ng th\u1ec3 truy c\u1eadp <code>generator[5]<\/code> nh\u01b0 list.<br>\u274c <strong>Kh\u00f3 debug h\u01a1n<\/strong> \u2013 V\u00ec n\u00f3 kh\u00f4ng l\u01b0u to\u00e0n b\u1ed9 d\u1eef li\u1ec7u, \u0111\u00f4i khi kh\u00f3 ki\u1ec3m tra k\u1ebft qu\u1ea3 trung gian.<\/p>\n\n\n\n<p>\ud83d\udca1 <strong>L\u01b0u \u00fd:<\/strong> N\u1ebfu b\u1ea1n c\u1ea7n truy c\u1eadp l\u1ea1i d\u1eef li\u1ec7u nhi\u1ec1u l\u1ea7n, h\u00e3y d\u00f9ng <strong>list<\/strong> thay v\u00ec Generator!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf <strong>5. K\u1ebft lu\u1eadn<\/strong><\/h2>\n\n\n\n<p>\ud83d\udd25 <strong>Generator l\u00e0 c\u00f4ng c\u1ee5 m\u1ea1nh m\u1ebd gi\u00fap t\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t khi l\u00e0m vi\u1ec7c v\u1edbi d\u1eef li\u1ec7u l\u1edbn.<\/strong><br>\ud83d\udd25 <strong>Thay v\u00ec gi\u1eef to\u00e0n b\u1ed9 d\u1eef li\u1ec7u trong b\u1ed9 nh\u1edb, Generator ch\u1ec9 t\u1ea1o t\u1eebng ph\u1ea7n t\u1eed khi c\u1ea7n.<\/strong><br>\ud83d\udd25 <strong>\u1ee8ng d\u1ee5ng r\u1ed9ng r\u00e3i trong \u0111\u1ecdc file, truy v\u1ea5n database, x\u1eed l\u00fd streaming API\u2026<\/strong><\/p>\n\n\n\n<p>B\u1ea1n \u0111\u00e3 t\u1eebng d\u00f9ng Generator ch\u01b0a? H\u00e3y th\u1eed ngay v\u00e0 c\u1ea3m nh\u1eadn s\u1ef1 kh\u00e1c bi\u1ec7t! \ud83d\ude80\ud83d\udcac<\/p>\n\n\n\n<p>#Python #Generator #TietKiemBoNho #LapTrinhPython #PythonPerformance<\/p>\n","protected":false},"excerpt":{"rendered":"<p>B\u1ea1n \u0111\u00e3 bao gi\u1edd g\u1eb7p t\u00ecnh hu\u1ed1ng c\u1ea7n x\u1eed l\u00fd m\u1ed9t t\u1eadp d\u1eef li\u1ec7u kh\u1ed5ng l\u1ed3, nh\u01b0ng ch\u01b0\u01a1ng tr\u00ecnh l\u1ea1i ch\u1ea1y ch\u1eadm ho\u1eb7c th\u1eadm ch\u00ed b\u1ecb \u201c\u0111\u01a1\u201d do h\u1ebft RAM? \ud83d\ude31 N\u1ebfu&#8230;<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-401","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/news.techjunior.vn\/index.php?rest_route=\/wp\/v2\/posts\/401","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/news.techjunior.vn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/news.techjunior.vn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/news.techjunior.vn\/index.php?rest_route=\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/news.techjunior.vn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=401"}],"version-history":[{"count":1,"href":"https:\/\/news.techjunior.vn\/index.php?rest_route=\/wp\/v2\/posts\/401\/revisions"}],"predecessor-version":[{"id":403,"href":"https:\/\/news.techjunior.vn\/index.php?rest_route=\/wp\/v2\/posts\/401\/revisions\/403"}],"wp:attachment":[{"href":"https:\/\/news.techjunior.vn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=401"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/news.techjunior.vn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=401"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/news.techjunior.vn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=401"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}