Saturday, October 18, 2025
HomeLanguagesPython – Consecutive K elements join in List

Python – Consecutive K elements join in List

Sometimes, while working with Python lists, we can have a problem in which we need to join every K character into one collection. This type of application can have use cases in many domains like day-day and competitive programming. Let us discuss certain ways in which this task can be performed. 

Method #1: Using List comprehension 

This is one of the ways by which this task can be performed. In this, we iterate through the list and join elements using list slicing and return the aggregated list. 

Python3




# Python3 code to demonstrate
# Consecutive K elements join in List
# using List comprehension
 
# Initializing list
test_list = ['g', 'f', 'g', 'i', 's', 'b', 'e', 's', 't']
 
# printing original list
print("The original list is : " + str(test_list))
 
# Initializing K
K = 3
 
# Consecutive K elements join in List
# using List comprehension
res = ["".join(test_list[idx: idx + K])
       for idx in range(len(test_list) - K + 1)]
 
# printing result
print("List after consecutive joining : " + str(res))


Output

The original list is : ['g', 'f', 'g', 'i', 's', 'b', 'e', 's', 't']
List after consecutive joining : ['gfg', 'fgi', 'gis', 'isb', 'sbe', 'bes', 'est']

Time Complexity: O(n), where n is the length of the input list. This is because we’re using list comprehension which has a time complexity of O(n) in the worst case.
Auxiliary Space: O(n), as we’re using additional space res other than the input list itself with the same size of input list.

Method #2: Using loop 

This is a brute way to perform this task. This is similar to the above method, just the string is iterated using a loop and making task more longer and tedious. 

Python3




# Python3 code to demonstrate
# Consecutive K elements join in List
# using loop
 
# Initializing list
test_list = ['g', 'f', 'g', 'i', 's', 'b', 'e', 's', 't']
 
# printing original list
print("The original list is : " + str(test_list))
 
# Initializing K
K = 3
 
# Consecutive K elements join in List
# using loop
res = []
for idx in range(0, len(test_list) - K + 1):
    res.append("".join(test_list[idx: idx + K]))
 
# printing result
print("List after consecutive joining : " + str(res))


Output

The original list is : ['g', 'f', 'g', 'i', 's', 'b', 'e', 's', 't']
List after consecutive joining : ['gfg', 'fgi', 'gis', 'isb', 'sbe', 'bes', 'est']

Time Complexity: O(n)
Auxiliary Space: O(n)

Method #3: Using itertools

Here’s a solution using the islice function from the itertools module and the join method of strings.

Python3




from itertools import islice
 
 
def consecutive_k_elements_join(lst, k):
    return [''.join(x) for x in zip(*(islice(lst, i, None) for i in range(k)))]
 
 
# Initializing list
test_list = ['g', 'f', 'g', 'i', 's', 'b', 'e', 's', 't']
 
# printing original list
print("The original list is:", test_list)
 
# Initializing K
K = 3
 
# Consecutive K elements join in List
result = consecutive_k_elements_join(test_list, K)
 
# printing result
print("List after consecutive joining:", result)
# This code is contributed by Edula Vinay Kumar Reddy


Output

The original list is: ['g', 'f', 'g', 'i', 's', 'b', 'e', 's', 't']
List after consecutive joining: ['gfg', 'fgi', 'gis', 'isb', 'sbe', 'bes', 'est']

This solution has a time complexity of O(n) and a space complexity of O(k), where n is the length of lst and k is the value of K.

Method 4 : Using the map() function and lambda expression

  1. Initialize the list and K variable as shown in the original code.
  2. Define a lambda function that takes a slice of K elements and joins them using the “”.join() method.
  3. Use the map() function to apply the lambda function to each slice of K consecutive elements in the list. This will give you a map object.
  4. Convert the map object to a list using the list() function.
  5. Print the resulting list.

Python3




# Python3 code to demonstrate
# Consecutive K elements join in List
# using map() function and lambda expression
 
# Initializing list
test_list = ['g', 'f', 'g', 'i', 's', 'b', 'e', 's', 't']
 
# printing original list
print("The original list is : " + str(test_list))
 
# Initializing K
K = 3
 
# Consecutive K elements join in List
# using map() function and lambda expression
res = list(map(lambda x: "".join(x), [
           test_list[i:i+K] for i in range(len(test_list)-K+1)]))
 
# printing result
print("List after consecutive joining : " + str(res))


Output

The original list is : ['g', 'f', 'g', 'i', 's', 'b', 'e', 's', 't']
List after consecutive joining : ['gfg', 'fgi', 'gis', 'isb', 'sbe', 'bes', 'est']

Time Complexity: O(nK) – where n is the length of the list and K is the size of the slice.
Auxiliary Space: O(nK) – since we are creating a new list to store the slices.

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS