Мне нужно сместить элементы в списке, если есть пустые пробелы, начинающиеся с определенного индекса, элементы справа от смещенных элементов НЕ ДОЛЖНЫ смещаться от своего индекса, демонстрация:
# desired output
["not end","x","y","","","","don't move"]
# works here
l = ["not end","","","","x","y","don't move"]
start = 1
aext_len = 3
end = start + aext_len + 1
for empty, cell in enumerate(l[start:end - 1], 1):
if cell:
break
for z in range(aext_len + 2 - empty):
l.insert(start + z, l.pop(start + empty + z))
print (l)
#['not end', 'x', 'y', '', '', '', "don't move"]
# not here
l = ["not end","","x","y","","","don't move"]
start = 1
aext_len = 3
end = start + aext_len + 1
for empty, cell in enumerate(l[start:end - 1], 1):
if cell:
break
for z in range(aext_len + 2 - empty):
l.insert(start + z, l.pop(start + empty + z))
print (l)
#['not end', 'y', '', '', '', 'x', "don't move"]