Python | Add odd item twice

NumPy | Python Methods and Functions

Here are some ways to achieve the above objective.

Method # 1: Using List Comprehension

# Python code to create a new list from the initial list
# with the condition to add each odd element twice.

 
# Initialization list

Input = [ 1 , 2 , 3 , 8 , 9 , 11 ]

  
# Using the comprehension list

Output = [elem for x in Input for elem in (x,) * (x % 2 + 1 )]

 
# print

print ( "Initial list is:` " , Input )

p rint ( "New list is:" , Output)

Exit:

 Initial list is: `[ 1, 2, 3, 8, 9, 11] New list is: [1, 1, 2, 3, 3, 8, 9, 9, 11, 11] 

Method # 2 : Using itertools

# Python code to create a new list from the initial list
# with the condition to add each odd element twice.

 
# Import

from itertools import chain

 
# Initialization list

Input = [ 1 , 2 , 3 , 8 , 9 , 11 ]

  
# Using comprehension list and chaining

Output = list (chain.from_iterable ([i] 

if i % 2 = = 0 else [i] * 2 for i in Input ))

 
# print

print ( "Initial list is:` " , Input )

print ( "New list is:" , Output)

Exit:

 Initial list is: `[1, 2, 3, 8, 9, 11] New list is: [1, 1, 2, 3, 3, 8, 9, 9, 11, 11] 

Method # 3: Using a Numpy array

# Python code to create a new list from the initial list
# with the condition to add each odd element twice.

 
# Import

import numpy as np

 
# Initialization list

Input = [ 1 , 2 , 3 , 8 , 9 , 11 ]

Output = []

  
# Using Numpy to repeat

for x in Input :

  ( Output.extend (np.repeat (x, 2 , axis = 0 ))

  if x % 2 = = 1 else Output.append (x))

 
# print

print ( " Initial list is: `" , Input )

print ( "New list is:" , Output)

Exit:

 Initial list is: `[1, 2, 3, 8, 9, 11] New list is: [1, 1, 2, 3, 3, 8, 9, 9, 11, 11] 




Get Solution for free from DataCamp guru