Tìm hiểu cách chia danh sách Python thành n phần, bao gồm cách chia danh sách thành các danh sách con có kích thước khác nhau hoặc một số lượng danh sách con khác nhau.

Bạn đang xem : chia danh sách trong python

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để chia danh sách thành n phần. Bạn sẽ học cách chia danh sách Python thành các phần có kích thước size n , nghĩa là bạn sẽ trả về các danh sách mà mỗi danh sách chứa n (hoặc ít hơn nếu không còn lại) mục.

Danh sách trong Python có thể thay đổi và không đồng nhất, có nghĩa là chúng có thể được thay đổi và có thể chứa các mục thuộc các kiểu dữ liệu khác nhau. Chúng cũng được sắp xếp theo thứ tự, có nghĩa là thứ tự của chúng quan trọng và các mặt hàng có thể được truy cập theo vị trí chỉ mục của chúng.

Biết cách làm việc với danh sách trong Python là một kỹ năng nhập cần học. Tại đây, bạn sẽ học cách sử dụng Python để chia danh sách thành nhiều phần.

Câu trả lời nhanh: Sử dụng lập chỉ mục danh sách

Câu trả lời nhanh - Chia danh sách Python thành các đoạn Sử dụng vòng lặp for để chia danh sách Python thành nhiều phần

Cách truy cập Python Liệt kê theo Chỉ mục của nó

Một trong nhiều đặc tính tuyệt vời của danh sách là chúng được sắp xếp theo thứ tự. Điều này có nghĩa là chúng ta có thể truy cập một mục hoặc một loạt các mục bằng chỉ mục của nó. Hãy xem cách hoạt động của các chỉ mục danh sách Python:

Lập chỉ mục danh sách Python hoạt động như thế nào

Chúng ta có thể thấy ở đây rằng danh sách Python có cả chỉ mục tích cực cũng như chỉ mục tiêu cực. Chỉ số dương bắt đầu ở vị trí 0, nghĩa là mục đầu tiên. Chỉ mục danh sách phủ định bắt đầu từ -1, cho phép bạn truy xuất mục cuối cùng của danh sách.

Tách danh sách thành các Chunks Sử dụng a For-Loop

Vòng lặp for trong Python là một công cụ cực kỳ hữu ích để sử dụng. Họ làm cho rất nhiều phương pháp Python dễ thực hiện cũng như dễ hiểu.

Vì lý do này, hãy bắt đầu bằng cách sử dụng vòng lặp for để chia danh sách của chúng ta thành các phần khác nhau.

Một trong những cách bạn có thể chia danh sách là thành n phần khác nhau. Hãy xem cách chúng ta có thể thực hiện điều này bằng cách sử dụng vòng lặp for:

 # Tách một danh sách Python thành các Chunks bằng For Loops
our_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

chunked_list = list ()
chunk_size = 3

cho tôi trong phạm vi (0, len (our_list), chunk_size):
    chunked_list.append (our_list [i: i + chunk_size])

print (chunked_list)

# Trả về: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]] 

Hãy xem những gì chúng tôi đã làm ở đây:

  1. Chúng tôi tạo hai danh sách: our_list , chứa các mục trong danh sách ban đầu của chúng tôi và chunked_list , trống
  2. Chúng tôi cũng khai báo một biến, chunk_size , mà chúng tôi đã đặt thành ba, để chỉ ra rằng chúng tôi muốn chia danh sách của mình thành các phần có kích thước 3
  3. Sau đó, chúng tôi lặp lại danh sách của mình bằng cách sử dụng hàm phạm vi. Những gì chúng tôi đã làm ở đây là tạo các mục từ 0 đến kích thước trong danh sách của chúng tôi, lặp lại ở kích thước phân đoạn của chúng tôi. Ví dụ: hàm phạm vi của chúng tôi sẽ đọc range (0, 11, 3) , nghĩa là chúng tôi sẽ lặp lại bằng cách sử dụng các mục 0,3,6,9 .
  4. Sau đó, chúng tôi lập chỉ mục danh sách của mình từ i: i + chunk_size , nghĩa là vòng lặp đầu tiên sẽ là 0: 3 , sau đó là 3: 6 , v.v.
  5. Các danh sách được lập chỉ mục này được thêm vào danh sách của chúng tôi

Chúng ta có thể thấy rằng đây là một cách khá đơn giản để chia danh sách Python thành nhiều phần. Tiếp theo, bạn sẽ tìm hiểu cách thực hiện điều này bằng cách sử dụng khả năng hiểu danh sách Python.

​​ Bạn muốn tìm hiểu thêm? Nếu bạn muốn tìm hiểu thêm về vòng lặp for trong Python, hãy xem hướng dẫn chuyên sâu của tôi tại đây , sẽ dạy cho bạn tất cả những gì bạn cần biết!

Tách các danh sách Python thành các Chunks Sử dụng tính năng Tổng hợp danh sách

Trong nhiều trường hợp, các vòng lặp for trong Python có thể được viết lại theo cách Pythonic hơn bằng cách viết chúng dưới dạng một dòng chữ được gọi là danh sách hiểu. Khả năng hiểu danh sách trong Python có một số lợi ích hữu ích đối với vòng lặp, bao gồm cả việc không phải khởi tạo danh sách trống trước tiên và không phải ngắt vòng lặp for của bạn qua nhiều dòng.

Để tìm hiểu thêm về cách hiểu danh sách bằng Python, hãy xem hướng dẫn trên YouTube của tôi bên dưới:

Tìm hiểu tất cả những gì bạn cần biết về hiểu danh sách Python!

Hãy xem cách chúng ta có thể viết hiểu danh sách Python để chia danh sách thành nhiều phần:

 # Tách một danh sách Python thành các Chunks bằng cách sử dụng khả năng hiểu danh sách
our_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

chunk_size = 3
chunked_list = [our_list [i: i + chunk_size] cho tôi trong phạm vi (0, len (our_list), chunk_size)]

print (chunked_list)

# Trả về: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]] 

Trước khi chúng tôi chia nhỏ mã này, hãy xem cú pháp cơ bản của việc hiểu danh sách Python trông như thế nào:

Cú pháp hiểu danh sách Python Cách hiểu danh sách hoạt động trong Python

Bây giờ, hãy chia nhỏ mã của chúng ta để xem cách nó hoạt động:

  1. Chúng tôi khai báo một biến chunk_size để xác định mức độ chúng tôi muốn danh sách phân khúc của mình lớn đến mức nào
  2. Đối với biểu thức hiểu danh sách, chúng tôi lập chỉ mục danh sách dựa trên thứ i đến vị trí thứ i + chunk_sizeth
  3. Chúng tôi sử dụng biểu thức này để lặp lại mọi mục trong đầu ra của đối tượng range () được tạo dựa trên range (0, len (our_list), chunk_size , trong trường hợp này sẽ là 0,3,6,9

Mặc dù cách tiếp cận này nhanh hơn một chút để nhập, nhưng liệu nó có dễ đọc hơn so với vòng lặp for hay không, vẫn còn là vấn đề cần thảo luận. Hãy cùng tìm hiểu cách chia danh sách Python của chúng ta thành nhiều phần bằng cách sử dụng numpy.

​​ Bạn muốn tìm hiểu thêm? Hãy xem hướng dẫn chuyên sâu của tôi về cách hiểu danh sách Python bằng cách nhấp vào đây !

Tách danh sách thành các Chunks Sử dụng numpy

Numpy là một thư viện Python tuyệt vời giúp các phép toán dễ dàng hơn đáng kể. Điều đó đang được nói, numpy cũng hoạt động với một đối tượng giống như danh sách, được gọi là các mảng numpy, giúp làm việc với danh sách dễ dàng hơn nhiều. Các mảng thô này được đóng gói với nhiều phương pháp khác nhau để thao tác với các mảng của bạn.

Trong phần này của hướng dẫn, chúng tôi sẽ sử dụng phương thức numpy array_split () để chia danh sách Python của chúng tôi thành nhiều phần.

Hãy xem cách chúng ta có thể sử dụng numpy để phân chia danh sách của mình:

 # Tách một danh sách Python thành các Chunks bằng cách sử dụng numpy
nhập numpy dưới dạng np

our_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
our_array = np.array (our_list)
chunk_size = 3

chunked_arrays = np.array_split (our_array, len (our_list) // chunk_size + 1)
chunked_list = [danh sách (mảng) cho mảng trong chunked_arrays]

print (chunked_list)

# Trả về: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]] 

Đây là một cách làm khá dài và chúng tôi chắc chắn có thể cắt giảm nó một chút. Hãy xem điều đó có thể được thực hiện như thế nào:

 chunked_list2 = [list (mảng) cho mảng trong np.array_split (np.array (our_list), len (our_list) // chunk_size + 1)]
print (chunked_list2)

# Trả về: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]] 

Hãy phân tích vấn đề này một chút:

  1. Chúng tôi biến danh sách của mình thành một mảng Numpy
  2. Sau đó, chúng tôi khai báo kích thước phân đoạn của chúng tôi
  3. Sau đó, chúng tôi tạo các mảng phân khúc bằng cách chuyển mảng vào split_arrays < / code> phương thức. Là tham số thứ hai, chúng tôi thêm 1 vào phép chia tầng của chiều dài mảng của chúng tôi chia cho kích thước chunk của chúng tôi. Lý do chúng tôi làm điều này là vì phương pháp này chia danh sách của chúng tôi thành các mảng có kích thước bằng tham số thứ hai về mặt kỹ thuật.
  4. Cuối cùng, chúng tôi sử dụng tính năng hiểu danh sách để chuyển tất cả các mảng trong danh sách mảng của chúng tôi thành danh sách. .

​​Bạn muốn tìm hiểu thêm về phép chia trong Python ? Hãy xem hướng dẫn của tôi về cách sử dụng phép chia số nguyên và phép chia float trong Python trong hướng dẫn này tại đây .

Hãy xem cách chúng tôi có thể sử dụng thư viện itertools để chia danh sách thành nhiều phần. Đặc biệt, chúng ta có thể sử dụng hàm zip_longest để thực hiện việc này.

Hãy xem cách chúng tôi có thể làm điều này:

 # Tách một danh sách Python thành các Chunks bằng itertools
từ itertools nhập zip_longest

our_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
chunk_size = 3

chunked_list = list (zip_longest (* [iter (our_list)] * chunk_size, fillvalue = ''))
print (chunked_list)

# Trả về: [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, '')]

chunked_list = [danh sách (item) cho item trong danh sách (zip_longest (* [iter (our_list)] * chunk_size, fillvalue = ''))]
print (chunked_list)

# Trả về: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]] 

Ở đây, chúng ta có thể thấy rằng chúng ta có thể có một triển khai tương đối đơn giản trả về một danh sách các bộ giá trị. Lưu ý một trong những điều được thực hiện ở đây là chia danh sách thành các phần có kích thước n, thay vì thành n phần.

Kết luận

Trong bài đăng này, bạn đã học cách chia danh sách Python thành nhiều phần. Bạn đã học cách thực hiện chia danh sách Python thành nhiều phần size n hoặc thành phần n số . Bạn đã học cách thực hiện điều này bằng cách sử dụng vòng lặp for, sử dụng khả năng hiểu danh sách, numpy và itertools.

Để tìm hiểu thêm về phương pháp numpy.array_split , hãy xem tài liệu chính thức tại đây .


Xem thêm những thông tin liên quan đến chủ đề danh sách phân chia trong python

08 Làm việc với List trong Python

alt

  • Tác giả: ĐT Nguyễn [Học Excel Online]
  • Ngày đăng: 2020-05-09
  • Đánh giá: 4 ⭐ ( 7150 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: 08 Làm việc với List / danh sách trong Python
    Code: https://gist.github.com/ndthanh/019f8223bc141609f2fb35aab80a9f85
    XEM THÊM
    Tự học lập trình Python cơ bản:
    https://www.youtube.com/watch?v=GeG_bLPaJ4Q&list=PLALCv46JuKELn2atH340cDsxtNh9vT09c

    Tự học Google Sheet / Google Trang tính
    https://www.youtube.com/watch?v=f6eJTgdeDVw&list=PLALCv46JuKELbzwGKA5xI38aog2wlTtj9

    Tự học JavaScript cơ bản:
    https://www.youtube.com/watch?v=rifl2SmhMYw&list=PLALCv46JuKEJ_fkWzE9C4xI9Q4Pxsdqqh

    Tự học Excel Online cơ bản đến nâng cao:
    https://www.youtube.com/watch?v=skE_Ld3d1FI&list=PLALCv46JuKEIb30S1S2jPgHLQnUvPpmsz

    Tự học lập trình VBA cơ bản đến nâng cao:
    https://www.youtube.com/watch?v=iPBKrsRrFTQ&list=PLALCv46JuKELXd5Ie81UqaFqAfsoXQSQt

    Tự học lập trình Google Apps Script:
    https://www.youtube.com/watch?v=gGgosi7ITR4&list=PLALCv46JuKEL2CmEzyr9_5bzYYGX2p8a6

    ▷ Khoá học Excel: http://bit.ly/ex101_dtnguyen
    ▷ Khoá học VBA: http://bit.ly/vba101_dtnguyen
    ▷ Theo dõi Facebook cá nhân: https://fb.me/kuldokk
    ▷ Blog cá nhân: https://blog.hocexcel.online

Chia chuỗi trong Python

  • Tác giả: vi.softoban.com
  • Đánh giá: 3 ⭐ ( 6491 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: phương thức split () cũng được sử dụng trong Python để chia một chuỗi thành các từ và nó trả về một danh sách các từ dựa trên dấu phân tách. Phương thức split () có thể được sử dụng trong Python được trình bày trong bài viết này bằng cách sử dụng các ví dụ khác nhau.

Class trong Python (lập trình hướng đối tượng OOP)

  • Tác giả: freetuts.net
  • Đánh giá: 5 ⭐ ( 6219 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn các bạn cách tạo class trong Python, và các kiến thức liên quan như hàm khởi tạo - tính kế thừa - các mực độ truy cập public / private và public.

Python - Danh sách

  • Tác giả: isolution.pro
  • Đánh giá: 3 ⭐ ( 8165 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Danh sách là một kiểu dữ liệu linh hoạt nhất có sẵn trong Python, có thể được viết dưới dạng danh sách các giá trị (mục) được phân tách bằng dấu phẩy giữa các dấu ngoặc vuông. Điều quan trọng về danh sách là các mục trong danh sách không cần cùng loại. Tạo danh sách đơn giản như đặt...

Class và việc Phân chia Module trong Python

  • Tác giả: viblo.asia
  • Đánh giá: 4 ⭐ ( 3253 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Xin chào các bạn. Hôm nay mình sẽ giới thiệu với các bạn về Class và việc Phân chia Module trong Python

Python - Danh sách phân tách trên giá trị lớn hơn tiếp theo

  • Tác giả: vn.wsxdn.com
  • Đánh giá: 5 ⭐ ( 2909 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

[Python] Phần 8: Danh sách (List) trong Python

  • Tác giả: www.dammio.com
  • Đánh giá: 3 ⭐ ( 4781 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Tạo bản sao lưu cơ sở dữ liệu đầy đủ - SQL Server - sao lưu cơ sở dữ liệu máy chủ sql

By ads_php