Hướng dẫn slice python

Hướng dẫn cách cắt list trong python. Bạn sẽ học được khái niệm cắt (slice) list trong python là gì cũng như các cách cắt list trong python bằng index sau bài học này.

  • Bài viết liên quan : Index trong python và cách truy cập phần tử trong list Python

Cắt (slice) list trong python là gì

Cắt (slice) list trong python hay còn gọi là slice list python là thao tác lấy ra các phần tử trong một phạm vi của list ban đầu và tạo ra một list mới. Phạm vi cắt được chỉ định thông qua index của phần tử trong python.

Hướng dẫn slice python

Cú pháp cắt (slice) list trong python như sau:

org_list [ start_index : end_index : step]

Trong đó,

  • org_list là list ban đầu
  • start_index : index của phần tử ở vị trí bắt đầu cắt
  • end_index: index của phần tử ở vị trí kết thúc cắt

Lưu ý kết quả của phép cắt (slice) list python sẽ bao gồm phần tử tại vị trí bắt đầu cắt, nhưng KHÔNG bao gồm phần tử tại vị trí kết thúc cắt. Trong trường hợp bạn muốn lấy cả phần tử ở vị trí kết thúc cắt, chúng ta cần chỉ định end_index công thêm 1 đơn vị để có thể bao gồm cả phần tử đó trong kết quả phép cắt.

Ví dụ cụ thể của cắt (slice) list trong python như sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums)


cut_list= nums[0:5]
print(cut_list)


cut_list2 = nums[3:7]
print(cut_list2)

Lưu ý là phép cắt (slice) list trong python sẽ KHÔNG thay đổi list ban đầu mà chỉ sao chép các phần tử trong một phạm vi trong list ban đầu và tạo ra một list mới.

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


print(nums)


nums_cut = nums[2:7]
print(nums_cut)




print(nums)

Các phương pháp cắt list trong python

Cắt ra một phạm vi từ list ban đầu

Bằng cách chỉ định vị trí bắt đầu và vị trí kết thúc cắt bằng index của các phần tử tại các vị trí đó, chúng ta có thể cắt ra một phạm vi từ list python như ví dụ sau đây:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[2:5])


print(nums[-5: -2])

Tương tự bạn cũng có thể cắt ra phạm vi từ một list có phần tử là các chuỗi ký tự như sau:

l = ['a','b','c','d','e']
print(l[2:4])


print(l[1:5])

Lưu ý là nếu bạn chỉ định vị trí bắt đầu hoặc kết thúc cắt bằng các giá trị index nằm ngoài phạm vi index trong list ban đầu, thì chức năng cắt (slice) list cũng chỉ có thể cắt ra phạm vi lớn nhất có thể từ list ban đầu mà thôi. Ví dụ:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(len(nums))


newlist = nums[2:100]
print(newlist)


newlist2 = nums[-80:-3]
print(newlist2)

Cắt ra một phạm vi từ đầu tới giữa list python

Để cắt từ đầu tới giữa list python, chúng ta lược bỏ start_index khi viết cú pháp cắt list.
Ví dụ như chúng ta viết [:5] chẳng hạn. Khi đó, python ngầm hiểu vị trí bắt đầu bằng 0 và cắt list tương tự với khi viết [0:5] như ví dụ sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
newlist1= nums[0:5]
newlist2= nums[:5]

print(newlist1)
print(newlist2)

Kết quả:

[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]

Cắt ra một phạm vi từ giữa tới cuối list python

Để cắt (slice) list trong python từ giữa list tới cuối list, chúng ta lược bỏ end_index khi viết cú pháp cắt list.
Ví dụ như chúng ta viết [5:] chẳng hạn. Khi đó, python ngầm hiểu vị trí kết thúc bằng số phần tử của list (có thể tính bằng hàm len()) như ví dụ sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
newlist3= nums[5:]
newlist4= nums[5:10]
newlist5= nums[5:len(nums)]

print(newlist3)
print(newlist4)
print(newlist5)

Kết quả:

[5, 6, 7, 8, 9]
[5, 6, 7, 8, 9]
[5, 6, 7, 8, 9]

Cắt (slice) ngược list trong python

Khi chỉ định vị trí bắt đầu và kết thúc bằng index âm, chúng ta có thể cắt (slice) ngược một list trong python. Chúng ta sử dụng phương pháp này để Đảo ngược list trong python.

Ví dụ:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[::-1])

Chúng ta cũng có thể nhảy cóc và bỏ qua một số phần tử khi cắt ngược list ban đầu như sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[::-3])

Chúng ta cũng có cắt (slice) ngược list trong python trong một phạm vi của list ban đầu như sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[8:2:-1])


print(nums[-2:-9:-2])

  • Xem thêm các phương pháp đảo ngược list khác tại bài viết : Đảo ngược list trong python (reverse, reversed).

Tách list ban đầu thành 2 phần tại vị trí chỉ định

Bằng việc ứng dụng cắt list trong python, chúng ta có thể tách list ban đầu thành 2 phần nhỏ hơn tại một vị trí chỉ định. Trong ví dụ sau đây, chúng ta sẽ tách một list ban đầu thành 2 list nhỏ hơn tại vị trí index bằng 4 như sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

nums1 = nums[:4]
nums2 = nums[4:]

print(nums1)
print(nums2)

Kết quả:

[0, 1, 2, 3]
[4, 5, 6, 7, 8, 9]

Nhảy cóc và bỏ qua phần tử khi cắt list trong python | đối số step

Một ứng dụng thú vị của cắt (slice) list trong python, đó là chúng ta có thể nhảy cóc và bỏ qua một số phần tử khi cắt list.

Bằng cách sử dụng thêm đối số step khi cắt (slice) list trong python, chúng ta có thể nhảy cóc và cắt ra các phần tử có index cách nhau một quảng step như ví dụ sau đây:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[::1])
print(nums[::2])
print(nums[::3])

Kết quả:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 6, 8]
[0, 3, 6, 9]

Chúng ta cũng có thể nhảy cóc và bỏ qua phần tử trong một phạm vi khi cắt list python như sau:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[2:7:1])
print(nums[2:7:2])
print(nums[-7:-2:3])

Kết quả:

[2, 3, 4, 5, 6]
[2, 4, 6]
[3, 6]

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách cắt (slice) list trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại &lt;a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/"&gt;Creativecommons&lt;/a&gt;&amp;nbsp;và &lt;a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="https://www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge"&gt;DMCA&lt;/a&gt;&lt;script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js"&gt;</p><h3 style="font-size:15px">Bài viết liên quan</h3><ul class="popular-posts"><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/append-trong-python/" title="Phương thức append trong python" rel="bookmark">Phương thức append trong python</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/chen-phan-tu-vao-list-trong-python/" title="Chèn phần tử vào list python (insert, slice)" rel="bookmark">Chèn phần tử vào list python (insert, slice)</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/extend-trong-python/" title="Phương thức extend trong python" rel="bookmark">Phương thức extend trong python</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/dao-nguoc-list-python/" title="Đảo ngược list trong python (reverse, reversed)" rel="bookmark">Đảo ngược list trong python (reverse, reversed)</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/chuyen-string-sang-list-trong-python/" title="Chuyển string sang list trong Python" rel="bookmark">Chuyển string sang list trong Python</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/kiem-tra-va-lay-phan-tu-trung-nhau-trong-list-python/" title="Kiểm tra và lấy phần tử trùng nhau trong list python" rel="bookmark">Kiểm tra và lấy phần tử trùng nhau trong list python</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/list-comprehension-trong-python/" title="Sử dụng list comprehension trong Python" rel="bookmark">Sử dụng list comprehension trong Python</a></h3></div></li><li class="popular-posts-item"><div class="popular-posts-title"><h3><a target="_blank" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/khoi-tao-list-trong-python/" title="Tạo list trong python" rel="bookmark">Tạo list trong python</a></h3></div></li></ul></div><div id="keugoi"><span>Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!</span></div><section class="icon-bar-2" style="border-bottom:dotted grey .3px!important"><a target="_blank" title="chia sẻ qua facebook" rel="noopener noreferrer" href="https://www.facebook.com/sharer/sharer.php?u=https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/cat-lat-list-trong-python/" class="facebook"><i class="fa fa-facebook"></i></a> <a target="_blank" rel="noopener noreferrer" href="https://twitter.com/intent/tweet?url=https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/cat-lat-list-trong-python/" title="chia sẻ qua twitter" class="twitter"><i class="fa fa-twitter"></i></a> <a target="_blank" rel="noopener noreferrer" href="https://getpocket.com/edit?url=https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/cat-lat-list-trong-python/" title="chia sẻ qua pocket" class="pocket"><i class="fa fa-get-pocket"></i></a> <span class="zalo-share-button" title="chia sẻ qua zalo" style="margin-left:18px;margin-bottom:-3px" data-href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/cat-lat-list-trong-python/" data-oaid="579745863508352884" data-layout="3" data-color="blue" data-customize="false"></span></section><p class="ico-folder"><a target="_blank" href="https://laptrinhcanban.com/"><span itemprop="HOME">HOME</span></a><span class="sya"></span>&gt;&gt; <a target="_blank" class="article-category-link" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/">python cơ bản - lập trình python cho người mới bắt đầu</a>&gt;&gt;<a target="_blank" class="article-category-link" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/">10. list trong python</a></p><nav id="article-nav"><a target="_blank" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/truy-cap-phan-tu-trong-list-python/" id="article-nav-older" class="article-nav-link-wrap" style="float:left;text-align:right;padding-right:20px"><strong class="article-nav-caption">Bài sau</strong><div class="article-nav-title">Index trong python và cách truy cập phần tử trong list Python</div></a><a target="_blank" href="https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/list-trong-python/thay-doi-gia-tri-cua-phan-tu-trong-list-python/" id="article-nav-newer" class="article-nav-link-wrap" style="float:right;text-align:left;padding-left:20px"><strong class="article-nav-caption">Bài tiếp</strong><div class="article-nav-title">Thay đổi giá trị phần tử trong một list python</div></a><span id="ezoic-pub-ad-placeholder-611" class="ezoic-adpicker-ad"></span></nav><div id="recent_posts_down"><div class="widget_athemes_tabs"><ul id="widget-tab" class="clearfix widget-tab-nav"><li class="active">Bài viết mới nhất</li></ul><div class="widget"><ul><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-chuoi-trong-php/"><img width="60px" height="60px" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" alt="" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban45.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-chuoi-trong-php/">Tách chuỗi trong PHP (explode, preg_split)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/cat-chuoi-trong-php/"><img width="60px" height="60px" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" alt="" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban21.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/cat-chuoi-trong-php/">Cắt chuỗi trong PHP (substr, mb_substr)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-chuoi-thanh-mang-trong-php/"><img width="60px" height="60px" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" alt="" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban57.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-chuoi-thanh-mang-trong-php/">Tách chuỗi thành mảng trong PHP (explode)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tim-kiem-chuoi-trong-php/"><img width="60px" height="60px" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" alt="" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban43.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tim-kiem-chuoi-trong-php/">Tìm kiếm chuỗi trong PHP (strpos)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/dem-so-lan-xuat-hien-cua-ky-tu-trong-chuoi-php/"><img width="60px" height="60px" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" alt="" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban52.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/dem-so-lan-xuat-hien-cua-ky-tu-trong-chuoi-php/">Đếm số lần xuất hiện của ký tự và chuỗi trong chuỗi PHP (substr_count)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/chuyen-chuoi-thanh-mang-trong-php/"><img width="60px" height="60px" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" alt="" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban47.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/chuyen-chuoi-thanh-mang-trong-php/">Chuyển chuỗi thành mảng trong PHP (str_split, mb_str_split)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-tung-ky-tu-trong-chuoi-php/"><img width="60px" height="60px" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" alt="" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban47.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/tach-tung-ky-tu-trong-chuoi-php/">Tách từng ký tự trong chuỗi PHP (substr, preg_split)</a></span> <span>tháng 9 17, 2022</span></div></li><li class="clearfix"><div class="widget-entry-thumbnail"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/xoa-ky-tu-trong-chuoi-php/"><img width="60px" height="60px" class="ezlazyload attachment-thumb-small size-thumb-small wp-post-image" alt="" ezimgfmt="rs rscb2 src ng ngcb2" data-ezsrc="/css/images/thumbnail_img/laptrinhcanban15.webp"></a></div><div class="widget-entry-summary"><span style="margin:0"><a target="_blank" href="https://laptrinhcanban.com/php/nhap-mon-lap-trinh-php/chuoi-trong-php/xoa-ky-tu-trong-chuoi-php/">Xóa ký tự trong chuỗi PHP</a></span> <span>tháng 9 15, 2022</span></div></li></ul></div></div></div><footer class="entry-meta entry-footer"></footer><hr class="entry-footer-hr"></div><div id="profiletitle2">Profile</div><div id="profileblock2"><div id="profilephoto2"><a target="_blank" rel="noopener" href="https://www.facebook.com/mr.nchita"><img width="100" height="100" alt="きよしです!笑" ezimgfmt="rs rscb2 src ng ngcb2" class="ezlazyload" data-ezsrc="/css/images/kiyoshi.webp"></a></div><div id="profiletext2"><p>Tác giả : <a href="https://www.facebook.com/mr.nchita" target="_blank" rel="nofollow noopener">Kiyoshi (Chis Thanh)</a></p><p>Kiyoshi là một <a href="https://www.youtube.com/c/ChisThanh" target="_blank" rel="nofollow noopener">cựu du học sinh tại Nhật Bản</a>. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.<span id="ezoic-pub-ad-placeholder-196" class="ezoic-adpicker-ad"></span></p></div></div></div></article><aside id="sidebar"><div id="sidebar_first"><div class="search" style="margin-top:-30px"><div id="fb-root"></div><script async defer crossorigin="anonymous" src="https://connect.facebook.net/vi_VN/sdk.js#xfbml=1&version=v12.0&appId=3084959888222500&autoLogAppEvents=1" nonce="KPkvxeh4">

Hướng dẫn slice python

Tải thêm tài liệu liên quan đến bài viết Hướng dẫn slice python