Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

Tôi đang tìm cách để dễ dàng chia danh sách Python làm đôi.

Vì vậy, nếu tôi có một mảng:

A = [0,1,2,3,4,5]

Tôi sẽ có thể nhận được:

B = [0,1,2]

C = [3,4,5]

Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

Hỏi ngày 15 tháng 4 năm 2009 lúc 15:44Apr 15, 2009 at 15:44

Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]

Nếu bạn muốn một chức năng:

def split_list(a_list):
    half = len(a_list)//2
    return a_list[:half], a_list[half:]

A = [1,2,3,4,5,6]
B, C = split_list(A)

Maxymoo

33,7K9 Huy hiệu vàng90 Huy hiệu bạc115 Huy hiệu đồng9 gold badges90 silver badges115 bronze badges

Đã trả lời ngày 15 tháng 4 năm 2009 lúc 15:49Apr 15, 2009 at 15:49

Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

Jason Coonjason CoonJason Coon

16.9k10 Huy hiệu vàng39 Huy hiệu bạc 50 Huy hiệu Đồng10 gold badges39 silver badges50 bronze badges

2

Giải pháp chung chung hơn một chút (bạn có thể chỉ định số lượng các phần bạn muốn, không chỉ chia 'một nửa'):

def split_list(alist, wanted_parts=1):
    length = len(alist)
    return [ alist[i*length // wanted_parts: (i+1)*length // wanted_parts] 
             for i in range(wanted_parts) ]

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

print split_list(A, wanted_parts=1)
print split_list(A, wanted_parts=2)
print split_list(A, wanted_parts=8)

Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

Đã trả lời ngày 15 tháng 4 năm 2009 lúc 16:30Apr 15, 2009 at 16:30

ChristophedchristophedChristopheD

109K27 Huy hiệu vàng160 Huy hiệu bạc177 Huy hiệu đồng27 gold badges160 silver badges177 bronze badges

8

f = lambda A, n=3: [A[i:i+n] for i in range(0, len(A), n)]
f(A)

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
7 - ​​Độ dài của mảng kết quả được xác định trước

gậy

49,6K3 Huy hiệu vàng34 Huy hiệu bạc53 Huy hiệu Đồng3 gold badges34 silver badges53 bronze badges

Đã trả lời ngày 7 tháng 2 năm 2010 lúc 2:30Feb 7, 2010 at 2:30

JarojaroJaro

7536 Huy hiệu bạc10 Huy hiệu Đồng6 silver badges10 bronze badges

1

def split(arr, size):
     arrs = []
     while len(arr) > size:
         pice = arr[:size]
         arrs.append(pice)
         arr   = arr[size:]
     arrs.append(arr)
     return arrs

Test:

x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
print(split(x, 5))

kết quả:

[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13]]

Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

LAVANDE

67910 Huy hiệu bạc16 Huy hiệu Đồng10 silver badges16 bronze badges

Đã trả lời ngày 18 tháng 4 năm 2014 lúc 6:54Apr 18, 2014 at 6:54

Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

SiamandsiamandSiamand

1.06010 Huy hiệu bạc18 Huy hiệu đồng10 silver badges18 bronze badges

2

Nếu bạn không quan tâm đến đơn đặt hàng ...

def split(list):  
    return list[::2], list[1::2]

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
8 Nhận mỗi phần tử thứ hai trong danh sách bắt đầu từ phần tử 0.
A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
9 Nhận mỗi phần tử thứ hai trong danh sách bắt đầu từ phần tử thứ nhất.
A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
9 gets every second element in the list starting from the 1st element.

Ags

14.2k5 Huy hiệu vàng 50 Huy hiệu bạc65 Huy hiệu Đồng5 gold badges50 silver badges65 bronze badges

Đã trả lời ngày 13 tháng 6 năm 2011 lúc 9:11Jun 13, 2011 at 9:11

Sentytheesentytheesentythee

3112 Huy hiệu bạc2 Huy hiệu đồng2 silver badges2 bronze badges

2

Sử dụng danh sách cắt. Cú pháp về cơ bản là

def split_list(a_list):
    half = len(a_list)//2
    return a_list[:half], a_list[half:]

A = [1,2,3,4,5,6]
B, C = split_list(A)
0

B = [0,1,2]

C = [3,4,5]
0

Để có được nửa đầu của danh sách, bạn cắt từ chỉ mục đầu tiên thành

def split_list(a_list):
    half = len(a_list)//2
    return a_list[:half], a_list[half:]

A = [1,2,3,4,5,6]
B, C = split_list(A)
1 (trong đó
def split_list(a_list):
    half = len(a_list)//2
    return a_list[:half], a_list[half:]

A = [1,2,3,4,5,6]
B, C = split_list(A)
2 là bộ phận số nguyên - vì vậy ________ 331 ________ 341.5`):

B = [0,1,2]

C = [3,4,5]
1

.. và hoán đổi các giá trị xung quanh để có được nửa sau:

B = [0,1,2]

C = [3,4,5]
2

Đã trả lời ngày 15 tháng 4 năm 2009 lúc 16:28Apr 15, 2009 at 16:28

DBRDBRdbr

162K65 Huy hiệu vàng273 Huy hiệu bạc340 Huy hiệu Đồng65 gold badges273 silver badges340 bronze badges

2

def split_list(a_list):
    half = len(a_list)//2
    return a_list[:half], a_list[half:]

A = [1,2,3,4,5,6]
B, C = split_list(A)
5

Đã trả lời ngày 15 tháng 4 năm 2009 lúc 15:50Apr 15, 2009 at 15:50

John Montgomeryjohn MontgomeryJohn Montgomery

8,5484 Huy hiệu vàng33 Huy hiệu bạc42 Huy hiệu đồng4 gold badges33 silver badges42 bronze badges

2

Đây là một giải pháp phổ biến, chia arr thành phần đếm

B = [0,1,2]

C = [3,4,5]
3

Đã trả lời ngày 20 tháng 7 năm 2012 lúc 7:17Jul 20, 2012 at 7:17

Bài hát Chris SongchrisChris Song

1591 Huy hiệu bạc9 Huy hiệu đồng1 silver badge9 bronze badges

1

B = [0,1,2]

C = [3,4,5]
4

Tôi đã thử nghiệm, và dấu gạch chéo kép được yêu cầu để buộc bộ phận Int trong Python 3. Bài đăng gốc của tôi là chính xác, mặc dù Wysiwyg đã phá vỡ trong opera, vì một số lý do.

Đã trả lời ngày 15 tháng 4 năm 2009 lúc 15:49Apr 15, 2009 at 15:49

Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

Jason Coonjason CoonStefan Kendall

16.9k10 Huy hiệu vàng39 Huy hiệu bạc 50 Huy hiệu Đồng66 gold badges247 silver badges402 bronze badges

1

Giải pháp chung chung hơn một chút (bạn có thể chỉ định số lượng các phần bạn muốn, không chỉ chia 'một nửa'):itertools and write a function to yield each part as needed:

B = [0,1,2]

C = [3,4,5]
5

Đã trả lời ngày 15 tháng 4 năm 2009 lúc 16:30

B = [0,1,2]

C = [3,4,5]
6

Christophedchristophed

B = [0,1,2]

C = [3,4,5]
7

109K27 Huy hiệu vàng160 Huy hiệu bạc177 Huy hiệu đồng

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
7 - ​​Độ dài của mảng kết quả được xác định trướcDec 30, 2018 at 9:10

gậy

B = [0,1,2]

C = [3,4,5]
8

49,6K3 Huy hiệu vàng34 Huy hiệu bạc53 Huy hiệu Đồng

Đã trả lời ngày 7 tháng 2 năm 2010 lúc 2:30Apr 21, 2011 at 21:44

Jarojaro

B = [0,1,2]

C = [3,4,5]
9

7536 Huy hiệu bạc10 Huy hiệu ĐồngMay 27, 2014 at 17:17

1

kết quả:

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
0

LAVANDEFeb 26, 2019 at 19:22

67910 Huy hiệu bạc16 Huy hiệu ĐồngRoyM

Đã trả lời ngày 18 tháng 4 năm 2014 lúc 6:541 gold badge8 silver badges26 bronze badges

Siamandsiamand

1.06010 Huy hiệu bạc18 Huy hiệu đồngApr 15, 2009 at 19:03

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
1

Nếu bạn không quan tâm đến đơn đặt hàng ...Oct 5, 2017 at 20:43

Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

SuperGuy10SuperGuy10SuperGuy10

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
8 Nhận mỗi phần tử thứ hai trong danh sách bắt đầu từ phần tử 0.
A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
9 Nhận mỗi phần tử thứ hai trong danh sách bắt đầu từ phần tử thứ nhất.5 silver badges5 bronze badges

Ags

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
2

14.2k5 Huy hiệu vàng 50 Huy hiệu bạc65 Huy hiệu ĐồngApr 26, 2021 at 6:22

Đã trả lời ngày 13 tháng 6 năm 2011 lúc 9:11

Sentytheesentythee

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
3

3112 Huy hiệu bạc2 Huy hiệu đồngAug 29 at 9:26

Sử dụng danh sách cắt. Cú pháp về cơ bản là

def split_list(a_list):
    half = len(a_list)//2
    return a_list[:half], a_list[half:]

A = [1,2,3,4,5,6]
B, C = split_list(A)
0zwep

Để có được nửa đầu của danh sách, bạn cắt từ chỉ mục đầu tiên thành

def split_list(a_list):
    half = len(a_list)//2
    return a_list[:half], a_list[half:]

A = [1,2,3,4,5,6]
B, C = split_list(A)
1 (trong đó
def split_list(a_list):
    half = len(a_list)//2
    return a_list[:half], a_list[half:]

A = [1,2,3,4,5,6]
B, C = split_list(A)
2 là bộ phận số nguyên - vì vậy ________ 331 ________ 341.5`):11 silver badges26 bronze badges

.. và hoán đổi các giá trị xung quanh để có được nửa sau:

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
4

Đã trả lời ngày 15 tháng 4 năm 2009 lúc 16:28Aug 2, 2012 at 4:24

DBRDBRPunjCoder

162K65 Huy hiệu vàng273 Huy hiệu bạc340 Huy hiệu Đồng1 gold badge4 silver badges10 bronze badges

Đã trả lời ngày 15 tháng 4 năm 2009 lúc 15:50

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
5

Khái niệm này hoạt động cho bất kỳ số lượng phân vùng danh sách nào bạn muốn (bạn phải điều chỉnh mã tùy thuộc vào số lượng phần danh sách bạn muốn). Và là khá đơn giản để giải thích. Để tăng tốc mọi thứ, bạn thậm chí có thể viết vòng lặp này trong Cython / C / C ++ để tăng tốc mọi thứ. Sau đó, một lần nữa, tôi đã thử mã này trên các danh sách tương đối nhỏ ~ 10.000 hàng và nó hoàn thành trong một phần nhỏ thứ hai.

Chỉ cần hai xu của tôi.

Cảm ơn!

Đã trả lời ngày 28 tháng 5 năm 2020 lúc 5:04May 28, 2020 at 5:04

Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

Aaronlheaaronlheaaronlhe

9749 Huy hiệu bạc15 Huy hiệu Đồng9 silver badges15 bronze badges

A = [1,2,3,4,5,6]
B = A[:len(A)//2]
C = A[len(A)//2:]
6

Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

Riven

2.50511 huy hiệu vàng10 Huy hiệu bạc24 Huy hiệu đồng11 gold badges10 silver badges24 bronze badges

Đã trả lời ngày 22 tháng 10 năm 2021 lúc 17:04Oct 22, 2021 at 17:04

Hướng dẫn python split array into smaller arrays - python chia mảng thành các mảng nhỏ hơn

1

Làm thế nào để bạn chia một mảng thành các mảng nhỏ hơn trong Python?

Sử dụng phương thức Array_Split (), vượt qua trong mảng bạn muốn chia và số lượng phân chia bạn muốn làm., pass in the array you want to split and the number of splits you want to do.

Làm cách nào để chia một mảng numpy thành các mảng nhỏ hơn?

Làm thế nào để phân chia mảng numpy..
Split (): Chia một mảng thành nhiều mảng phụ có kích thước bằng nhau ..
Array_Split (): Nó chia một mảng thành nhiều mảng phụ có kích thước bằng hoặc gần bằng nhau.....
hsplit (): chia một mảng thành nhiều phần phụ theo chiều ngang (thông minh cột) ..

Làm thế nào để bạn chia một danh sách thành nhiều danh sách trong Python?

Chia danh sách thành các nhóm phụ bằng hàm mảng_split () trong numpy.Phương thức Array_Split () trong thư viện Numpy cũng có thể chia một mảng lớn thành nhiều mảng nhỏ.Hàm này lấy mảng ban đầu và số lượng khối chúng ta cần chia mảng thành và trả lại các khối chia.Using the array_split() Function in NumPy. The array_split() method in the NumPy library can also split a large array into multiple small arrays. This function takes the original array and the number of chunks we need to split the array into and returns the split chunks.

Làm thế nào để bạn chia một mảng thành các phần bằng nhau trong Python?

Chương trình Python để chia một danh sách thành các khối có kích thước đồng đều..
Sử dụng phương thức For Loop và Range (), lặp từ 0 đến độ dài của danh sách với kích thước của chunk là bước ..
Trả lại các khối bằng năng suất.list_a [i: i+chunk_size] cho mỗi khối ..