Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • Build your AI Agent
    • GfG 160
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • Contests
    • Accenture Hackathon (Ending Soon!)
    • GfG Weekly [Rated Contest]
    • Job-A-Thon Hiring Challenge
    • All Contests and Events
  • Python Tutorial
  • Interview Questions
  • Python Quiz
  • Python Glossary
  • Python Projects
  • Practice Python
  • Data Science With Python
  • Python Web Dev
  • DSA with Python
  • Python OOPs
Open In App
Next Article:
Python | Merge two lists alternatively
Next article icon

Python | Concatenate N consecutive elements in String list

Last Updated : 13 Apr, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

Sometimes, while working with data, we can have a problem in which we need to perform the concatenation of N consecutive Strings in a list of Strings. This can have many applications across domains. Let’s discuss certain ways in which this task can be performed. 

Method #1: Using format() + zip() + iter() + list comprehension

The combination of the above methods can be used to perform this particular task. In this, we perform the task of grouping using zip() and iter(), format() is used to specify the grouping delimiter.

Python3




# Python3 code to demonstrate working of
# Consecutive N concatenation in String list
# using format() + zip() + iter() + list comprehension
 
# initialize list
test_list = ['gfg', 'is', 'good', 'for', 'geek', 'people']
 
# printing original list
print("The original list : " + str(test_list))
 
# initialize N
N = 3
 
# Consecutive N concatenation in String list
# using format() + zip() + iter() + list comprehension
temp = '{} ' * N
res = [temp.format(*ele) for ele in zip(*[iter(test_list)] * N)]
 
# printing result
print("List after N concatenation of String : " + str(res))
 
 
Output : 
The original list : ['gfg', 'is', 'good', 'for', 'geek', 'people'] List after N concatenation of String : ['gfg is good ', 'for geek people ']

Time Complexity: O(n*n), where n is the length of the input list. This is because we’re using format() + zip() + iter() + list comprehension which has a time complexity of O(n*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 starmap() + zip() + iter() + format()

The combination of the above functions performs a similar task. The only difference is that starmap() is used instead of list comprehension for list construction.

Python3




# Python3 code to demonstrate working of
# Consecutive N concatenation in String list
# using starmap() + zip() + iter() + format()
from itertools import starmap
 
# initialize list
test_list = ['gfg', 'is', 'good', 'for', 'geek', 'people']
 
# printing original list
print("The original list : " + str(test_list))
 
# initialize N
N = 3
 
# Consecutive N concatenation in String list
# using starmap() + zip() + iter() + format()
temp = '{} ' * N
res = list(starmap(temp.format, zip(*[iter(test_list)] * N)))
 
# printing result
print("List after N concatenation of String : " + str(res))
 
 
Output : 
The original list : ['gfg', 'is', 'good', 'for', 'geek', 'people'] List after N concatenation of String : ['gfg is good ', 'for geek people ']

Time complexity: O(n*n), where n is the length of the numbers list. The starmap() + zip() + iter() + format() have a time complexity of O(n)

Auxiliary Space: O(n), as we create new list res where n is the length of the numbers list.

Method #3 : Using map() , list slicing and join()

Python3




# Python3 code to demonstrate working of
# Consecutive N concatenation in String list
# using map() and join()
 
# initialize list
test_list = ['gfg', 'is', 'good', 'for', 'geek', 'people']
 
# printing original list
print("The original list : " + str(test_list))
 
# initialize N
N = 3
 
# Consecutive N concatenation in String list
# using map() and join()
result = list(map(' '.join, [test_list[i:i+N]
                             for i in range(0, len(test_list), N)]))
 
# printing result
print("List after N concatenation of String : " + str(result))
 
# this code is contributed by edula vinay kumar reddy
 
 
Output
The original list : ['gfg', 'is', 'good', 'for', 'geek', 'people'] List after N concatenation of String : ['gfg is good', 'for geek people']

This approach also uses map() and join() method to concatenate N consecutive strings in the list of strings. It iterates through the list by N steps and joins the slice of length N using map() method.

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

Method #4: Using a for loop and string concatenation

Python3




# Initialize the list
test_list = ['gfg', 'is', 'good', 'for', 'geek', 'people']
 
# Initialize N
N = 3
 
# Initialize the empty string
temp = ""
res = []
# Iterate over the list
for i in range(0, len(test_list), N):
    for j in range(N):
        if (i+j) < len(test_list):
            temp += test_list[i+j] + " "
    temp = temp.strip()
    res.append(temp)
    temp = ""
 
# Print the result
print(res)
# This code is contributed Vinay Pinjala.
 
 
Output
['gfg is good', 'for geek people']

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

Method #5: Using more_itertools chunked:

This is a Python program that defines a function named concat_n_consecutive which takes two arguments: test_list and n. test_list is a list of strings, and n is an integer that specifies the number of consecutive strings to concatenate together. The function uses the chunked method from the more_itertools library to split the test_list into chunks of n elements. Then, the function joins the elements of each chunk into a single string using a list comprehension. The function returns a list of concatenated strings.

The program then initializes a test list and an integer N, calls the concat_n_consecutive function with these inputs, and stores the result in a variable called result. Finally, the program prints the resulting list of concatenated strings using the print() function.

Python3




import more_itertools
# Function to concatenate n consecutive strings from the list
 
 
def concat_n_consecutive(test_list, n):
    # Using the `chunked` method from the `more_itertools` library to split the list into chunks of n elements
    # The `chunked` method returns a list of chunks, each chunk being a list of n elements
    # Using a list comprehension to join the elements of each chunk into a single string
    return [''.join(i) for i in more_itertools.chunked(test_list, n)]
 
 
# Initializing the test list and n
test_list = ['gfg', 'is', 'good', 'for', 'geek', 'people']
N = 3
# Calling the function
result = concat_n_consecutive(test_list, N)
# Printing the result
print("List after N concatenation of String:", result)
# This code is contributed by Jyothi pinjala.
 
 

Output:

List after N concatenation of String: [‘gfgisgood’, ‘forgeekpeople’] 

Time complexity of this code refers to the amount of time the program takes to execute as the size of the input data increases. It is O(n * m), which means the execution time grows in proportion to the length of the input list and the number of strings to concatenate.

Space complexity of this code refers to the amount of memory the program uses as the size of the input data increases. It is O(n+m), which means the memory usage grows in proportion to the length of the input list and the number of strings to concatenate.

Method#6: Using Recursive method

The group_words function takes the test_list and N as arguments, and recursively groups the words in the list into sub-lists of size N or smaller.

If the length of the input list is less than or equal to N, it simply returns a single sub-list that contains all the words in the input list.

Otherwise, it splits the input list into two parts: the first N words, and the rest of the list. It then recursively applies the same process to the rest of the list and combines the resulting sub-lists with the first N words as the first sub-list. Finally, it returns the list of sub-lists as the output.

Note: In the recursive case, the join method is used to combine the words in each sub-list into a single string.

Python3




def group_words(test_list, N):
    if len(test_list) <= N:
        return [' '.join(test_list)]
    else:
        return [ ' '.join(test_list[:N])] + group_words(test_list[N:], N)
     
# Test the recursive function
test_list = ['gfg', 'is', 'good', 'for', 'geek', 'people']
N = 3
res = group_words(test_list, N)
print(res)
 
 
Output
['gfg is good', 'for geek people']

Time complexity: O(n)
Where n is the length of the input list test_list. In each recursive call, we slice the input list into two parts, which takes O(n) time in the worst case. We then make one recursive call with the second part of the list, which has a length at most n-N, and concatenate the first N words of the original list to the result of the recursive call. The concatenation operation takes O(N) time, which is constant with respect to n. Since the recursion tree has depth n/N in the worst case, the total number of recursive calls is n/N, so the overall time complexity is O(n * (n/N)) = O(n^2/N).

Auxiliary Space: O(n)
Since the recursion tree has depth n/N in the worst case, each recursive call creates a new list that can contain up to N words. Therefore, the maximum space required by the recursive calls is O(n/N * N) = O(n). In addition, each list concatenation operation creates a new string that can contain up to N words, so the maximum space required by the concatenation operations is also O(n).



Next Article
Python | Merge two lists alternatively
author
manjeet_04
Improve
Article Tags :
  • Python
  • Python Programs
  • Python list-programs
Practice Tags :
  • python

Similar Reads

  • Python Lists
    In Python, a list is a built-in dynamic sized array (automatically grows and shrinks). We can store all types of items (including another list) in a list. A list may contain mixed type of items, this is possible because a list mainly stores references at contiguous locations and actual items maybe s
    6 min read
  • Get a list as input from user in Python
    We often encounter a situation when we need to take a number/string as input from the user. In this article, we will see how to take a list as input from the user using Python. Get list as input Using split() MethodThe input() function can be combined with split() to accept multiple elements in a si
    3 min read
  • Create List of Numbers with Given Range - Python
    The task of creating a list of numbers within a given range involves generating a sequence of integers that starts from a specified starting point and ends just before a given endpoint. For example, if the range is from 0 to 10, the resulting list would contain the numbers 0, 1, 2, 3, 4, 5, 6, 7, 8
    3 min read
  • Python - Add List Items
    Python lists are dynamic, which means we can add items to them anytime. In this guide, we'll look at some common ways to add single or multiple items to a list using built-in methods and operators with simple examples: Add a Single Item Using append()append() method adds one item to the end of the l
    3 min read
  • How to add Elements to a List in Python
    In Python, lists are dynamic which means that they allow further adding elements unlike many other languages. In this article, we are going to explore different methods to add elements in a list. For example, let's add an element in the list using append() method: [GFGTABS] Python a = [1, 2, 3] a.ap
    2 min read
  • Python List Access

    • Python - Access List Item
      Whether we are working with numbers, strings or other data types, lists provide a versatile way to organize and manipulate data. But how to access specific items in a list? This article will guide you through various methods of accessing list items in Python. Accessing List Items by IndexIn Python,
      3 min read

    • Accessing index and value in Python list
      We are given a list, and our task is to access both the index and value of each element in the list using Python. For example, using enumerate(list) in a loop like for index, value in enumerate(list) allows us to access both the index and the value together. Using enumerate() enumerate() is preferre
      2 min read

    • Accessing all elements at given list of indexes-Python
      Sometimes, you may have a list of data and a separate list of indexes and the goal is to extract only the elements at those specific positions. For example, given a list [10, 20, 30, 40, 50] and a list of indexes [1, 3, 4], you want to retrieve [20, 40, 50] the values at those index positions in the
      2 min read

    • Python List Slicing
      Python list slicing is fundamental concept that let us easily access specific elements in a list. In this article, we’ll learn the syntax and how to use both positive and negative indexing for slicing with examples. Example: Get the items from a list starting at position 1 and ending at position 4 (
      5 min read

    List Iteration Operations

    • Iterate over a list in Python
      Python provides several ways to iterate over list. The simplest and the most common way to iterate over a list is to use a for loop. This method allows us to access each element in the list directly. Example: Print all elements in the list one by one using for loop. [GFGTABS] Python a = [1, 3, 5, 7,
      3 min read

    • How to iterate through a nested List in Python?
      A nested list is a list that contains other lists. Working with nested lists can seem tricky at first but it becomes easy once we understand how to iterate through them. This is the easiest way to loop through a nested list. We can use a for loop to access each sublist in the main list, and then use
      3 min read

    • Iterate over multiple lists simultaneously in Python
      In Python, iterating over a single list is straightforward using a for loop. But if we want to iterate over multiple lists at the same time-accessing corresponding elements from each in one loop then we can do so by using these methods: zip()itertools.zip_longest()enumerate()Generator expressions in
      2 min read

    • Iterate Over a List of Lists in Python
      We are given a list that contains multiple sublists, and our task is to iterate over each of these sublists and access their elements. For example, if we have a list like this: [[1, 2], [3, 4], [5, 6]], then we need to loop through each sublist and access elements like 1, 2, 3, and so on. Using Nest
      2 min read

    Python List Search Operations

    • How To Find the Length of a List in Python
      The length of a list refers to the number of elements in the list. There are several methods to determine the length of a list in Python. For example, consider a list l = [1, 2, 3, 4, 5], length of this list is 5 as it contains 5 elements in it. Let's explore different methods to find the length of
      2 min read

    • Python | Find elements of a list by indices
      Given two lists with elements and indices, write a Python program to find elements of list 1 at indices present in list 2. Examples: Input : lst1 = [10, 20, 30, 40, 50] lst2 = [0, 2, 4] Output : [10, 30, 50] Explanation: Output elements at indices 0, 2 and 4 i.e 10, 30 and 50 respectively. Input : l
      5 min read

    • Python program to find String in a List
      Searching for a string in a list is a common operation in Python. Whether we're dealing with small lists or large datasets, knowing how to efficiently search for strings can save both time and effort. In this article, we’ll explore several methods to find a string in a list, starting from the most e
      3 min read

    • Python - Ways to find indices of value in list
      In Python, it is common to locate the index of a particular value in a list. The built-in index() method can find the first occurrence of a value. However, there are scenarios where multiple occurrences of the value exist and we need to retrieve all the indices. Python offers various methods to achi
      3 min read

    • Python | Find most frequent element in a list
      Given a list, find the most frequent element in it. If multiple elements appear a maximum number of times, print any one of them using Python. Example Make a set of the list so that the duplicate elements are deleted. Then find the highest count of occurrences of each element in the set and thus, we
      2 min read

    Python List Remove Operations

    • Python - Remove List Item
      Removing List Item can be achieved using several built-in methods that provide flexibility in how you remove list items. In this article, we'll explore the different ways to remove list items in Python. Removing Item by Value with remove()The remove() method allows us to remove the first occurrence
      3 min read

    • How to Remove Item from a List in Python
      Lists in Python have various built-in methods to remove items such as remove, pop, del and clear methods. Removing elements from a list can be done in various ways depending on whether we want to remove based on the value of the element or index. The simplest way to remove an element from a list by
      3 min read

    • Python | Remove given element from the list
      Given a list, write a Python program to remove the given element (list may have duplicates) from the given list. There are multiple ways we can do this task in Python. Let's see some of the Pythonic ways to do this task. Example: Input: [1, 8, 4, 9, 2] Output: [1, 8, 4, 2] Explanation: The Element 9
      7 min read

    • Ways to remove particular List element in Python
      There are times when we need to remove specific elements from a list, whether it’s filtering out unwanted data, deleting items by their value or index or cleaning up lists based on conditions. In this article, we’ll explore different methods to remove elements from a list. Using List ComprehensionLi
      2 min read

    • Remove Multiple Elements from List in Python
      In this article, we will explore various methods to remove multiple elements from a list in Python. The simplest way to do this is by using a loop. A simple for loop can also be used to remove multiple elements from a list. [GFGTABS] Python a = [10, 20, 30, 40, 50, 60, 70] # Elements to remove remov
      3 min read

    Python List Concatenation Operations

    • Python - Concatenate two lists element-wise
      In Python, concatenating two lists element-wise means merging their elements in pairs. This is useful when we need to combine data from two lists into one just like joining first names and last names to create full names. zip() function is one of the most efficient ways to combine two lists element-
      3 min read

    • Merge Two Lists in Python
      Python provides several approaches to merge two lists. In this article, we will explore different methods to merge lists with their use cases. The simplest way to merge two lists is by using the + operator. Let's take an example to merge two lists using + operator. [GFGTABS] Python a = [1, 2, 3] b =
      4 min read

    • Concatenate two list of lists Row-wise-Python
      The task of concatenate two lists of lists row-wise, meaning we merge corresponding sublists into a single sublist. For example, given a = [[4, 3], [1, 2]] and b = [[7, 5], [9, 6]], we pair elements at the same index: [4, 3] from a is combined with [7, 5] from b, resulting in [4, 3, 7, 5], and [1, 2
      3 min read

    • Python program to concatenate every elements across lists
      Given 2 lists, perform concatenations of all strings with each other across list. Input : test_list1 = ["gfg", "is", "best"], test_list2 = ["love", "CS"] Output : ['gfg love', 'gfg CS', 'is love', 'is CS', 'best love', 'best CS'] Explanation : All strings are coupled with one another. Input : test_l
      4 min read

    • Concatenate all Elements of a List into a String - Python
      We are given a list of words and our task is to concatenate all the elements into a single string with spaces in between. For example, given the list: li = ['hello', 'geek', 'have', 'a', 'geeky', 'day'] after concatenation, the result will be: "hello geek have a geeky day". Using str.join()str.join(
      3 min read

    • Concatenate All Records - Python
      The task of concatenating all records in Python involves combining elements from a list, typically strings, into a single unified string. The goal is to concatenate each individual element, ensuring that the result is a continuous string without spaces or delimiters, unless specified. For example, g
      3 min read

    • Python - Merge list elements
      Merging list elements is a common task in Python. Each method has its own strengths and the choice of method depends on the complexity of the task. This is the simplest and most straightforward method to merge elements. We can slice the list and use string concatenation to combine elements. [GFGTABS
      2 min read

    • Python | Concatenate N consecutive elements in String list
      Sometimes, while working with data, we can have a problem in which we need to perform the concatenation of N consecutive Strings in a list of Strings. This can have many applications across domains. Let's discuss certain ways in which this task can be performed. Method #1: Using format() + zip() + i
      8 min read

    • Python | Merge two lists alternatively
      Given two lists, write a Python program to merge the given lists in an alternative fashion, provided that the two lists are of equal length. Examples: Input : lst1 = [1, 2, 3] lst2 = ['a', 'b', 'c'] Output : [1, 'a', 2, 'b', 3, 'c'] Input : lst1 = ['name', 'alice', 'bob'] lst2 = ['marks', 87, 56] Ou
      4 min read

    • Python - Union of two or more Lists
      The union of two or more lists combines all elements ensuring no duplicates if specified. In this article we will explore various methods to get a union of two lists. Using set.union (Most Efficient for Uniqueness)The union() method ensures that the resulting list contains unique elements. Here we c
      2 min read

geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences