Python - Repeat Alternate Elements in list
Last Updated :
26 Mar, 2023
Many times we have this particular use-case in which we need to repeat alternate element of list K times. The problems of making a double clone has been discussed but this problem extends to allow a flexible variable to define the number of times the element has to be repeated. Let’s discuss certain ways in which this can be performed.
Method #1 : Using list comprehension This particular task requires generally 2 loops and list comprehension can perform this particular task in one line and hence reduce the lines of codes and improving code readability.
Python3
# Python3 code to demonstrate
# Alternate Element Repetition
# using list comprehension
# initializing list of lists
test_list = [4, 5, 6]
# printing original list
print("The original list : " + str(test_list))
# declaring magnitude of repetition
K = 3
# using list comprehension
# Alternate Element Repetition
res = [ele for idx, ele in enumerate(test_list)
for i in range(K) if idx % 2 == 0]
# printing result
print("The list after alternate repeating elements : " + str(res))
OutputThe original list : [4, 5, 6]
The list after alternate repeating elements : [4, 4, 4, 6, 6, 6]
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #2: Using itertools.chain.from_iterable() + itertools.repeat() This particular problem can also be solved using python inbuilt functions of itertools library. The repeat function, as name suggests does the task of repetition and grouping into a list is done by the from_iterable function.
Python3
# Python3 code to demonstrate
# Alternate Element Repetition
# using itertools.chain.from_iterable() + itertools.repeat()
import itertools
# initializing list of lists
test_list = [4, 5, 6]
# printing original list
print("The original list : " + str(test_list))
# declaring magnitude of repetition
K = 3
# using itertools.chain.from_iterable() + itertools.repeat()
# Alternate Element Repetition
res = list(itertools.chain.from_iterable(itertools.repeat(ele, K)
for idx, ele in enumerate(test_list) if idx % 2 == 0))
# printing result
print("The list after alternate repetition elements : " + str(res))
OutputThe original list : [4, 5, 6]
The list after alternate repetition elements : [4, 4, 4, 6, 6, 6]
Time complexity: O(n) as it requires iterating through the original list of size n and repeating each element K times, resulting in a total of n*K operations.
Auxiliary space: O(n*K) as it creates a new list to store the result of the repeated elements.
Method #3 : Using extend() method and * operator
Python3
# Python3 code to demonstrate
# Alternate Element Repetition
# initializing list of lists
test_list = [4, 5, 6]
# printing original list
print("The original list : " + str(test_list))
# declaring magnitude of repetition
K = 3
res=[]
for i in range(0,len(test_list)):
if(i%2==0):
res.extend([test_list[i]]*K)
# printing result
print("The list after alternate repeating elements : " + str(res))
OutputThe original list : [4, 5, 6]
The list after alternate repeating elements : [4, 4, 4, 6, 6, 6]
Time complexity: O(n), where n is the length of the input list. The loop runs n times.
Auxiliary space: O(K), where K is the magnitude of repetition.
Method #4: Using slicing and extend() method
Step-by-step approach:
- Initialize a list of lists named test_list with some values.
- Use list slicing to create a new list named alternate_list that contains every other element of the test_list.
- The slice test_list[::2] means start from the beginning of the list and take every second element. Store the result in alternate_list.
- Print the original list using the print() function. The statement is print("The original list : " + str(test_list)).
- Declare the magnitude of repetition K. In this case, K = 3.
- Create an empty list named res to store the final result.
- Use a loop to iterate over each element of the alternate_list. For each element, create a new list with the repeated element K times using the extend() method.
- Append the new list to the res list
- Print the final list after repeating alternate elements K times using the print() function.
Below is the implementation of the above approach:
Python3
# Python3 code to demonstrate
# Alternate Element Repetition
# initializing list of lists
test_list = [4, 5, 6]
alternate_list = test_list[::2]
# printing original list
print("The original list : " + str(test_list))
# declaring magnitude of repetition
K = 3
res = []
for i in range(len(alternate_list)):
res.extend([alternate_list[i]]*K)
# printing result
print("The list after alternate repeating elements : " + str(res))
OutputThe original list : [4, 5, 6]
The list after alternate repeating elements : [4, 4, 4, 6, 6, 6]
The time complexity of this code is O(N), where N is the length of the original list test_list.
The auxiliary space used by this code is O(N), where N is the length of the original list test_list.
Method #5 : Here's another approach using the numpy library:
Note: Install numpy module using command "pip install numpy"
Python3
# Python3 code to demonstrate
# Alternate Element Repetition
import numpy as np
# printing original list
test_list = [4, 5, 6]
K = 3
res = np.repeat(np.array(test_list[::2]), K).tolist()
# printing result
print("The list after alternate repeating elements :", res)
#This code is contributed by Edula Vinay Kumar Reddy
Output:
The list after alternate repeating elements : [4, 4, 4, 6, 6, 6]
Time Complexity: O(n), where n is the length of the input list. The time complexity is linear with the length of the list as it is just repeating and converting the elements in the list.
Auxiliary Space: O(n), where n is the length of the output list after repeating the elements. The space complexity is linear with the length of the output list as it requires memory to store the repeated elements.
Method 6: Using map()+ lambda function
Uses a map() function with a lambda function to repeat the selected elements K times, and the extend() function to append the repeated elements to a new list.
- Initialize the list test_list with some values.
- Print the original list using the print() function and string concatenation.
- Declare the magnitude of repetition as K.
- Initialize an empty list res to store the alternate repeated elements.
- Iterate through the elements in test_list using the enumerate() function.
- Check if the index of the current element is even using the modulo operator %.
- If the index is even, use a map() function with a lambda function to repeat the selected element K times.
- Use the extend() function to append the repeated elements to the res list.
- Print the resulting list using the print() function and string concatenation.
Below is the implementation of the above approach:
Python3
# Initializing list of lists
test_list = [4, 5, 6]
# Printing original list
print("The original list: " + str(test_list))
# Declaring magnitude of repetition
K = 3
# Using map and lambda function for alternate element repetition
res = []
for i, val in enumerate(test_list):
if i % 2 == 0:
res.extend(map(lambda x: val, range(K)))
# Printing result
print("The list after alternate repeating elements: " + str(res))
OutputThe original list: [4, 5, 6]
The list after alternate repeating elements: [4, 4, 4, 6, 6, 6]
Time complexity: O(NK) where N is the length of the input list.
Auxiliary space: O(NK)
Method #7 : Using extend()+operator.mul() methods
Approach
- Initiate a for loop with index from 0 to length of list
- Find alternate element index by checking if the index is divisible by 2
- Access the alternate element by index and repeat element by using operator.mul() and append it to output list
- Display output list
Python3
# Python3 code to demonstrate
# Alternate Element Repetition
# initializing list of lists
test_list = [4, 5, 6]
# printing original list
print("The original list : " + str(test_list))
# declaring magnitude of repetition
K = 3
res=[]
import operator
for i in range(0,len(test_list)):
if(i%2==0):
res.extend(operator.mul([test_list[i]],K))
# printing result
print("The list after alternate repeating elements : " + str(res))
OutputThe original list : [4, 5, 6]
The list after alternate repeating elements : [4, 4, 4, 6, 6, 6]
Time complexity: O(NK) where N is the length of the input list.
Auxiliary space: O(NK)
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