Hướng dẫn how to split a list into multiple lists python - cách chia danh sách thành nhiều danh sách python

chunks = [data[100*i:100*(i+1)] for i in range(len(data)/100 + 1)]

Điều này tương đương với câu trả lời được chấp nhận. Ví dụ: rút ngắn theo lô 10 cho khả năng đọc:

data = range(35)
print [data[x:x+10] for x in xrange(0, len(data), 10)]
print [data[10*i:10*(i+1)] for i in range(len(data)/10 + 1)]

Outputs:

[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để phân chia một danh sách, bao gồm cả cách chia nó làm đôi và thành các khối có kích thước bằng nhau. Bạn sẽ học cách chia danh sách Python thành các khối size n, nghĩa là bạn sẽ trả lại danh sách mà mỗi mục chứa N (hoặc ít hơn nếu không còn lại) các mục. Biết cách làm việc với các danh sách trong Python là một kỹ năng quan trọng để học.you’ll learn how to use Python to split a list, including how to split it in half and into n equal-sized chunks. You’ll learn how to split a Python list into chunks of size n, meaning that you’ll return lists that each contain n (or fewer if there are none left) items. Knowing how to work with lists in Python is an important skill to learn.

Đến cuối hướng dẫn này, bạn sẽ học được:

  • Cách chia một danh sách làm đôi trong Python
  • Cách chia danh sách thành các khối trong Python
  • Cách phân chia danh sách tại một vị trí chỉ mục cụ thể trong Python
  • Cách sử dụng Numpy để phân chia danh sách trong Python

Câu trả lời nhanh: Sử dụng danh sách danh sách Danh sách phân chia danh sách trong Python to Split a List in Python

Hướng dẫn how to split a list into multiple lists python - cách chia danh sách thành nhiều danh sách python
Sử dụng một vòng lặp để chia danh sách Python thành các khối

  • Cách truy cập danh sách Python bằng chỉ mục của nó
  • Cách chia danh sách Python làm đôi
  • Chia danh sách thành các khối bằng cách sử dụng vòng lặp for
  • Chia danh sách Python thành các khối bằng cách sử dụng danh sách hiểu biết
  • Chia danh sách thành các khối bằng cách sử dụng Numpy
  • Chia danh sách thành các khối bằng cách sử dụng itertools
  • Các câu hỏi thường gặp
  • Sự kết luận
  • Tài nguyên bổ sung

Cách truy cập danh sách Python bằng chỉ mục của nó

Cách chia danh sách Python làm đôi

Hướng dẫn how to split a list into multiple lists python - cách chia danh sách thành nhiều danh sách python

Chia danh sách thành các khối bằng cách sử dụng vòng lặp for

Chia danh sách Python thành các khối bằng cách sử dụng danh sách hiểu biếtThis can be done by using the

data = range(35)
print [data[x:x+10] for x in xrange(0, len(data), 10)]
print [data[10*i:10*(i+1)] for i in range(len(data)/10 + 1)]
0 colon character, which allows you to select items from a specific position up to a specific position.

Chia danh sách thành các khối bằng cách sử dụng Numpy

# Split a List in Half with Python List Slicing
a_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
half_length = len(a_list) // 2
first_half, second_half = a_list[:half_length], a_list[half_length:]

print(f'{first_half=}')
print(f'{second_half=}')

# Returns:
# first_half=[1, 2, 3, 4, 5]
# second_half=[6, 7, 8, 9, 10]

Chia danh sách thành các khối bằng cách sử dụng itertools

  1. Các câu hỏi thường gặp
  2. Sự kết luận
  3. Tài nguyên bổ sung

Một trong nhiều tài sản tuyệt vời của danh sách là chúng được đặt hàng. Điều này có nghĩa là chúng ta có thể truy cập vào một mục hoặc một loạt các mục, theo chỉ mục của nó. Hãy cùng xem cách thức các chỉ số danh sách Python hoạt động:

Chia danh sách thành các khối bằng cách sử dụng vòng lặp for

Chia danh sách Python thành các khối bằng cách sử dụng danh sách hiểu biết

Chia danh sách thành các khối bằng cách sử dụng Numpy

# Split a Python List into Chunks using For Loops
a_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

chunked_list = list()
chunk_size = 3

for i in range(0, len(a_list), chunk_size):
    chunked_list.append(a_list[i:i+chunk_size])

print(chunked_list)

# Returns: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]]

Chia danh sách thành các khối bằng cách sử dụng itertools

  1. Các câu hỏi thường gặp
  2. Sự kết luận
  3. Tài nguyên bổ sung
  4. Một trong nhiều tài sản tuyệt vời của danh sách là chúng được đặt hàng. Điều này có nghĩa là chúng ta có thể truy cập vào một mục hoặc một loạt các mục, theo chỉ mục của nó. Hãy cùng xem cách thức các chỉ số danh sách Python hoạt động:
  5. Chúng ta có thể thấy ở đây rằng danh sách Python có cả chỉ số tích cực cũng như chỉ số tiêu cực. Một chỉ số tích cực bắt đầu ở vị trí 0, có nghĩa là mục đầu tiên. Chỉ số danh sách tiêu cực bắt đầu ở -1, cho phép bạn lấy mục cuối cùng của danh sách.

Tương tự, bạn có thể truy cập các phạm vi dữ liệu trong danh sách bằng cách sử dụng Danh sách cắt. Điều này có thể được thực hiện bằng cách sử dụng ký tự đại tràng

data = range(35)
print [data[x:x+10] for x in xrange(0, len(data), 10)]
print [data[10*i:10*(i+1)] for i in range(len(data)/10 + 1)]
0, cho phép bạn chọn các mục từ một vị trí cụ thể cho đến một vị trí cụ thể.

Chia danh sách Python thành các khối bằng cách sử dụng danh sách hiểu biết

Chia danh sách thành các khối bằng cách sử dụng Numpylist comprehensions. List comprehensions in Python have a number of useful benefits over for-loops, including not having to instantiate an empty list first, and not having to break your for-loop over multiple lines.

Chia danh sách thành các khối bằng cách sử dụng itertools

# Split a Python List into Chunks using list comprehensions
our_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

chunk_size = 3
chunked_list = [our_list[i:i+chunk_size] for i in range(0, len(our_list), chunk_size)]

print(chunked_list)

# Returns: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]]

Các câu hỏi thường gặp

Hướng dẫn how to split a list into multiple lists python - cách chia danh sách thành nhiều danh sách python
Sự kết luận

Tài nguyên bổ sung

  1. Một trong nhiều tài sản tuyệt vời của danh sách là chúng được đặt hàng. Điều này có nghĩa là chúng ta có thể truy cập vào một mục hoặc một loạt các mục, theo chỉ mục của nó. Hãy cùng xem cách thức các chỉ số danh sách Python hoạt động:
  2. Đối với biểu thức toàn diện danh sách của chúng tôi, chúng tôi lập chỉ mục danh sách của chúng tôi dựa trên vị trí I+chunk_sizeth
  3. Chúng tôi sử dụng biểu thức này để lặp lại trên mọi mục trong đầu ra của đối tượng
    [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]
    [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]
    
    4 được tạo ra dựa trên
    [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]
    [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]
    
    5, trong trường hợp này sẽ là
    data = range(35)
    print [data[x:x+10] for x in xrange(0, len(data), 10)]
    print [data[10*i:10*(i+1)] for i in range(len(data)/10 + 1)]
    
    9

Mặc dù cách tiếp cận này nhanh hơn một chút để gõ, cho dù nó có dễ đọc hơn một vòng lặp hay không, là để thảo luận. Hãy cùng học cách chia danh sách Python của chúng tôi thành các khối bằng cách sử dụng Numpy.

Muốn tìm hiểu thêm? Kiểm tra hướng dẫn chuyên sâu của tôi về toàn bộ danh sách Python bằng cách nhấp vào đây! Check out my in-depth tutorial about Python list comprehensions by clicking here!

Chia danh sách thành các khối bằng cách sử dụng Numpy

Numpy là một thư viện Python tuyệt vời giúp các hoạt động toán học 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à 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 numpy này được đóng gói với rất nhiều phương pháp khác nhau để thao tác với mảng của bạn.

Điều quan trọng cần lưu ý là phương pháp này sẽ chỉ hoạt động với các giá trị số..

Trong phần này của hướng dẫn, chúng tôi sẽ sử dụng hàm

[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]
7 Numpy để chia danh sách Python của chúng tôi thành các khối. Chức năng này cho phép bạn chia một mảng thành một số mảng đã đặt.

Hãy để xem cách chúng ta có thể sử dụng Numpy để chia danh sách của mình thành 3 khối riêng biệt:

# Split a Python List into Chunks using numpy
import numpy as np

a_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
our_array = np.array(a_list)

chunked_arrays = np.array_split(our_array, 3)
chunked_list = [list(array) for array in chunked_arrays]

print(chunked_list)

# Returns: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

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

chunked_list = [list(array) for array in np.array_split(np.array(our_list), 3)]
print(chunked_list)

# Returns: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Hãy cùng phá vỡ điều này một chút:

  1. Chúng tôi biến danh sách của chúng tôi thành một mảng numpy
  2. Chúng tôi chia mảng của chúng tôi thành n số mảng bằng hàm
    [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]
    [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]
    
    8
  3. Cuối cùng, chúng tôi sử dụng một danh sách hiểu để biến tất cả các mảng trong danh sách các mảng của chúng tôi trở lại vào danh sách.

Bạn muốn tìm hiểu thêm về sự phân chia trong Python? Kiểm tra hướng dẫn của tôi về cách sử dụng bộ phận số nguyên và bộ phận nổi trong Python trong hướng dẫn này ở đây.division in Python? Check out my tutorial on how to use floored integer division and float division in Python in this tutorial here.

Hãy để xem cách chúng ta có thể sử dụng thư viện

[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34]]
9 để chia danh sách thành các khối. Cụ thể, chúng ta có thể sử dụng chức năng
# Split a List in Half with Python List Slicing
a_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
half_length = len(a_list) // 2
first_half, second_half = a_list[:half_length], a_list[half_length:]

print(f'{first_half=}')
print(f'{second_half=}')

# Returns:
# first_half=[1, 2, 3, 4, 5]
# second_half=[6, 7, 8, 9, 10]
0 để thực hiện điều này.

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

# Split a Python List into Chunks using itertools
from itertools import 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)

# Returns: [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, '')]

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

# Returns: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]]

Chúng ta có thể thấy ở đâ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ộ dữ liệu. Lưu ý một trong những điều được thực hiện ở đây là chia danh sách thành các khối kích thước N, thay vì thành các khối N.

Các câu hỏi thường gặp

Cách tốt nhất để phân chia danh sách Python là gì?

Cách tốt nhất để phân chia danh sách Python là sử dụng lập chỉ mục danh sách, vì nó mang lại cho bạn số lượng linh hoạt rất lớn.

Khi nào bạn nên sử dụng hàm Numpy Array_Split () để phân chia danh sách trong Python?

Chức năng Numpy Array_Split () cho phép bạn dễ dàng chia các mảng thành một số mảng nhất định. Tuy nhiên, hàm chỉ hoạt động với các giá trị số (vì các mảng numpy chỉ có thể chứa các giá trị số).However, the function only works with numeric values (as NumPy arrays can only contain numeric values).

Sự kết luận

Trong bài đăng này, bạn đã học cách chia danh sách Python thành các phần. Bạn đã học được cách hoàn thành việc chia danh sách Python thành các khối size n hoặc vào

# Split a List in Half with Python List Slicing
a_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
half_length = len(a_list) // 2
first_half, second_half = a_list[:half_length], a_list[half_length:]

print(f'{first_half=}')
print(f'{second_half=}')

# Returns:
# first_half=[1, 2, 3, 4, 5]
# second_half=[6, 7, 8, 9, 10]
2. Bạn đã học cách thực hiện việc này bằng cách sử dụng một vòng lặp, sử dụng toàn bộ danh sách, numpy và itertools.

Tài nguyên bổ sung

Để tìm hiểu thêm về các chủ đề liên quan, hãy xem các hướng dẫn dưới đây:

  • Danh sách Python: Tổng quan đầy đủ
  • Danh sách Python Sắp xếp (): Hướng dẫn chuyên sâu về Danh sách sắp xếp
  • Python: Tìm chỉ số danh sách của tất cả các sự cố của một yếu tố
  • Để tìm hiểu thêm về phương pháp
    # Split a List in Half with Python List Slicing
    a_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    half_length = len(a_list) // 2
    first_half, second_half = a_list[:half_length], a_list[half_length:]
    
    print(f'{first_half=}')
    print(f'{second_half=}')
    
    # Returns:
    # first_half=[1, 2, 3, 4, 5]
    # second_half=[6, 7, 8, 9, 10]
    3, hãy xem tài liệu chính thức ở đây.