Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 목록을 N 크기의 청크로 나눕니다.

<시간/>

여기에 주어진 사용자 입력 목록과 주어진 중단 크기가 있습니다. 그리고 우리의 임무는 주어진 크기에 따라 목록을 나누는 것입니다.

방법 1

여기에 yield 키워드를 적용하여 중단된 함수를 활성화한 다음 다시 호출합니다. 이것이 일반 함수와의 주요 차이점입니다.

예시 코드

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)

출력

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]]

방법 2

목록 이해를 사용하면 이 문제를 한 줄로 해결할 수 있습니다.

예시 코드

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)

출력

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]]