# Python – Index Value repetition in List

• Last Updated : 08 Dec, 2020

Given a list of elements, The task is to write a Python program to repeat each index value as per the value in that index.

Input : test_list = [3, 0, 4, 2]
Output : [0, 0, 0, 2, 2, 2, 2, 3, 3]
Explanation : 0 is repeated 3 times as its index value is 3.

Input : test_list = [3, 4, 2]
Output : [0, 0, 0, 1, 1, 1, 1, 2, 2]
Explanation : 1 is repeated 4 times as its value is 4.

Method #1 : Using list comprehension + enumerate()

In this, we perform task of repetition using * operator, and enumerate() is used to get indices along with values for repetition. List comprehension is used to iteration all the elements.

## Python3

 `# Python3 code to demonstrate working of``# Index Value repetition in List``# Using list comprehension + enumerate()`` ` `# initializing Matrix``test_list ``=` `[``3``, ``0``, ``4``, ``2``]``              ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# enumerate() gets index and value of similar index element``res ``=` `[ele ``for` `sub ``in` `([idx] ``*` `ele ``for` `idx, ``                       ``ele ``in` `enumerate``(test_list)) ``for` `ele ``in` `sub]``     ` `# printing result``print``(``"Constructed List : "` `+` `str``(res))`

Output:

```The original list is : [3, 0, 4, 2]
Constructed List : [0, 0, 0, 2, 2, 2, 2, 3, 3]```

Method #2 : Using chain.from_iterable() + list comprehension

In this, we perform the last step of flattening of list using chain.from_iterable(). List comprehension performs the task of iteration of all the elements.

## Python3

 `# Python3 code to demonstrate working of``# Index Value repetition in List``# Using chain.from_iterable() + list comprehension``import` `itertools`` ` `# initializing Matrix``test_list ``=` `[``3``, ``0``, ``4``, ``2``]``              ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# enumerate() gets index and``# value of similar index element``# from_iterable() used to flatten``res ``=` `list``(itertools.chain(``*``([idx] ``*` `ele ``for` `idx, ``                             ``ele ``in` `enumerate``(test_list))))``     ` `# printing result``print``(``"Constructed List : "` `+` `str``(res))`

Output:

```The original list is : [3, 0, 4, 2]
Constructed List : [0, 0, 0, 2, 2, 2, 2, 3, 3]```

My Personal Notes arrow_drop_up