Computer >> Máy Tính >  >> Lập trình >> Python

Chia danh sách thành nhiều phần có kích thước N bằng Python

Ở đây chúng ta sẽ có một danh sách đầu vào của người dùng nhất định và một kích thước ngắt nhất định. Và nhiệm vụ của chúng ta là phá vỡ danh sách theo kích thước đã cho.

Phương pháp 1

Ở đây chúng tôi đang áp dụng từ khóa lợi nhuận, nó kích hoạt một chức năng mà nó đã dừng lại sau đó một lần nữa nó được gọi, đây là sự khác biệt chính với chức năng thông thường.

Mã mẫu

A=list()
n=int(input("Enter the size of the List"))
print("Enter the number")
for i in range(int(n)):
   p=int(input("Size="))
   A.append(int(p))
   print (A)
deflist_chunks(l, n):
   for i in range(0, len(l), n):
      yield l[i:i + n]
n=int(input("Enter Chunk Size"))
my_list = list(list_chunks(A, n))
print ("List of Chunks",my_list)

Đầu ra

Enter the size of the List 6
Enter the number
Size= 12
[12]
Size= 33
[12, 33]
Size= 11
[12, 33, 11]
Size= 56
[12, 33, 11, 56]
Size= 44
[12, 33, 11, 56, 44]
Size= 89
[12, 33, 11, 56, 44, 89]
Enter Chunk Size 3
List of Chunks [[12, 33, 11], [56, 44, 89]]

Phương pháp 2

Sử dụng khả năng hiểu Danh sách, chúng tôi có thể giải quyết vấn đề này trong một dòng.

Mã mẫu

A=list()
n=int(input("Enter the size of the List"))
print("Enter the number")
for i in range(int(n)):
   p=int(input("Size="))
   A.append(int(p))
   print (A)
n=int(input("Enter Chunk Size"))
my_final = [A[i * n:(i + 1) * n] for i in range((len(A) + n - 1) // n )]
print ("List of chunks:",my_final)

Đầu ra

Enter the size of the List 6
Enter the number
Size= 23
[23]
Size= 34
[23, 34]
Size= 12
[23, 34, 12]
Size= 56
[23, 34, 12, 56]
Size= 33
[23, 34, 12, 56, 33]
Size= 22
[23, 34, 12, 56, 33, 22]
Enter Chunk Size 3
List of chunks: [[23, 34, 12], [56, 33, 22]]