پرسش

چطور یک لیست را به بخش‌های هم‌اندازه تقسیم کنم؟

How do I split a list into equally-sized chunks?

بهترین راه برای اینکه یک لیست رو به بخش هایی با اندازه مشخص تقسیم کنم چیه؟

1403/05/31
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

برای تقسیم یک لیست به بخش‌های هم‌اندازه در پایتون، می‌تونی از یک توابع که از روش تقسیم به صورت ژنراتور استفاده می‌کنه بهره ببری.

def chunk_list(lst, chunk_size):
    """
    Generator function to split a list into chunks of equal size.
    Args:
    lst: The list to be split.
    chunk_size: The size of each chunk.
    Yields:
    Chunks of the list.
    """
    for i in range(0, len(lst), chunk_size):
        yield lst[i:i + chunk_size]
# Example usage:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
chunks = list(chunk_list(my_list, 3))
print(chunks)

خروجی این کد به این صورت میشه:

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

این روش بهینه‌ست چون از یک ژنراتور استفاده می‌کنه که نیاز به حافظه‌ی زیادی نداره و فقط زمانی که نیاز داری بخش‌های لیست رو تولید می‌کنه. ضمن اینکه نیازی به نصب هیچ کتابخانه‌ی اضافی هم نداری و کد ساده و تمیز هست.

پاسخ: 1403/05/31
آخرین آپدیت: 1403/07/17