چطور در پایتون یه لیست را به قسمت های مساوی تقسیم کنیم؟

mohsen1 سال قبل
ارسال شده در
mohsen

برای تقسیم یه لیست به چند قسمت مساوی میتوانیم از تابع range استفاده کنیم:

      def chunks(lst, n):
    for i in range(0, len(lst), n):
        yield lst[i:i + n]
    

ورودی n تعداد آیتم های هر قسمت است. برای مثال:

      import pprint
pprint.pprint(list(chunks(range(10, 75), 10)))
-> 
[
   [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
   [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
   [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
   [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
   [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
   [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
   [70, 71, 72, 73, 74]
]
    

کد یه خطی برای انیکار نیز به صورت زیر است:

      [lst[i:i + n] for i in range(0, len(lst), n)]
    

برای پایتون 2 می توانیم از کد زیر استفاده کنیم:

      def chunks(lst, n):
    for i in xrange(0, len(lst), n):
        yield lst[i:i + n]
    

کد یک خطی برای پایتون 2 نیز به صورت زیر است:

      [lst[i:i + n] for i in xrange(0, len(lst), n)]
    
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!