Вставка элементов в список и перенумерация полученного списка

Есть список:

x=[1,2,3,4,5,2]

и нужно чтобы последнее число вставало перед числом 2, числа после перенумеровывались, и в итоге получался список

х=[1,2,3,4,5,6]

Список может быть и больше, и последнее число может быть разным. Но всегда оно должно вставляться в список на своё место по порядку!

Пытался идти несколькими способами:

  1. создавал другой список и сравнивал их
  2. пытался искать одинаковые числа
  3. пытался писать условия

но чего-то не то...

как правильно это сделать по 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)
→ Ссылка
Автор решения: Евгений Расторгуев

Автоматически рассортировать и убрать дубли

list(set(x))
→ Ссылка