I'm trying to insert different elements in specific indexes of a list.
Given this example:
l = [1,2,3,4,5]
Lets say I want to systematically insert the string 'k' after each value of the list. For this, I know I can use enumerate:
r = l.copy()
for idx, val in enumerate(l):
r.insert(idx, 'k')
or do it manually with a counter:
index = 0
for i in l:
index += 1
l.insert(index, 'k')
print(index)
if index >=5:
index = 0
break
but when I try both, it just inserts the value as many times as values in the list in the same index:
[1, 'k', 'k', 'k', 'k', 'k', 2, 3, 4, 5]
What am I missing?
Thanks in advance.
What I would do is:
l = data
l2 = []
for i in data:
l2.append(i)
l2.append("k")
you start by inserting k at index 1
[1, index 1 , 2, 3, 4] => [1, k, 2, 3, 4]
Then if you insert at index 2,
[1, k, index 2 , 2, 3, 4] => [1,k,k,2,3,4]
etc.
Also as a side note, on a large dataset insert would have to move all the items following in the list, so it would be very slow. My solution eliminates that, but creates a copy of the list.