Python | Divide K elements after every N values

Method # 1: Using Loops
This is a naive and brute force method, to solve this particular problem with a loop, we can generate a new list to check for K occurrences of elements after each N elements.

# Python3 code for demonstration
# Getting K elements after N values ​​
# using loops

 
# initializing list

test_list = [ 4 , 5 , 2 , 7 , 8 , 4 , 10 , 9 , 11 , 13 ]

 
# print original list

print ( "The original list:" + str (test_list))

 
# initializing N and K

N = 2

K = 3

  
# using loops
# Getting K elements after N values ​​

res = []

while test_list:

res + = test_list [: K]

test_list = test_list [K + N:]

 
# print result

print ( "The list after selective slicing:" + str (res))

Output:

 The original list: [4, 5, 2, 7, 8, 4, 10, 9, 11, 13] The list after selective slicing: [4 , 5, 2, 4, 10, 9] 

Method # 2: Using List Comprehension
This particular task can be accomplished using a shorthand method the above method using list comprehension, in this method we also use list slicing to perform the slicing required.

# Python3 demo code
# Get K elements after N values ​​
# use comprehension list

 
# initializing list

test_list = [ 4 , 5 , 2 , 7 , 8 , 4 , 10 , 9 , 11 , 13 ]

  
# print original list

print ( " The original list: " + str (test_list))

  
# initializing N and K

N = 2

K = 3

  
# using comprehension list
# Getting K elements after N values ​​

res = [y for x in [test_list [i: i + K] for i in  

range ( 0 , len (test_list), N + K)] for y in x] 

 
# print result

print ( " The list after selective slicing: " + str (res))

Output:

 The original list: [4, 5, 2, 7, 8, 4, 10, 9, 11, 13] The list after selective slicing: [4, 5, 2, 4, 10, 9]