এখানে একটি ইউজার ইনপুট লিস্ট এবং একটি ব্রেক সাইজ দেওয়া থাকবে। আমাদের কাজ হলো দেওয়া সাইজ অনুযায়ী লিস্টকে ভাঙা।
পদ্ধতি ১
এখানে 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)
def list_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]]
পদ্ধতি ২
লিস্ট কমপ্রিহেনশন ব্যবহার করে এই সমস্যাটি এক লাইনে সমাধান করা যায়।
উদাহরণ কোড
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]]