Home > Back-end >  How to duplicate every occurrence of specific item in list
How to duplicate every occurrence of specific item in list

Time:10-24

A given list looks like this

list = [1,2,3,4,5,6,4,0]

I would like to duplicate every occurrence of 4

so the output looks like this:

[1,2,3,4,4,5,6,4,4,0]

I tried to do it like this:

def dup(list):
    counter = 0
    for value in list:
        if value == 4:
            print(counter,value)
            list.insert(counter,4)
        counter  = 1

print(dup([1,2,3,4,5,6,4,0]))

I stumbled on a problem when I inserted int into a list index shifts with it. And I am stuck in an infinite loop of inserting 4

Also I would like the change to be done in place.

CodePudding user response:

l = []
for n in nums:
  l.append(num)
  if n == 4:
    l.append(4)

or inplace (you need to increment the counter twice)

i = 0
while i < len(nums):
  if nums[i] == 4:
    nums.insert(i, 4)
    i  = 1
  i  = 1
  • Related