Вставка элементов в список и перенумерация полученного списка
Есть список:
x=[1,2,3,4,5,2]
и нужно чтобы последнее число вставало перед числом 2, числа после перенумеровывались, и в итоге получался список
х=[1,2,3,4,5,6]
Список может быть и больше, и последнее число может быть разным. Но всегда оно должно вставляться в список на своё место по порядку!
Пытался идти несколькими способами:
- создавал другой список и сравнивал их
- пытался искать одинаковые числа
- пытался писать условия
но чего-то не то...
как правильно это сделать по python-ски?
Ответы (3 шт):
Автор решения: vp_arth
→ Ссылка
Для вставки числа в нужную позицию используйте insert:
l = list(range(3))
print(l)
# [0, 1, 2]
l.insert(0, 100)
print(l)
# [100, 0, 1, 2]
l.insert(-1, 200)
print(l)
# [100, 0, 1, 200, 2]
Требование «перенумеровывать» сводит задачу к формированию нового списка, никак не зависящего от вставляемого значения:
l[:] = range(1, len(l)+2)
Автор решения: valerius.spb
→ Ссылка
Поигрался немного и вот что получилось! Вроде всё работает!
list = [1,2,3,4,6]
list.sort()
newlist=[]
for i in list:
if i in newlist:
bool=True
while bool:
if newlist:
i+=1
bool=True
else:
newlist.append(i)
bool=False
else:
newlist.append(i)
