Подтвердить что ты не робот

Переместить элемент внутри списка?

В Python, как переместить элемент в определенный индекс в списке?

4b9b3361

Ответ 1

Используйте метод insert для списка:

l = list(...)
l.insert(index, item)

В качестве альтернативы вы можете использовать нотацию фрагмента:

l[index:index] = [item]

Если вы хотите переместить элемент, который уже находится в списке, в указанную позицию, вам нужно будет удалить его и вставить в новую позицию:

l.insert(newindex, l.pop(oldindex))

Ответ 2

Немного более короткое решение, которое только перемещает элемент до конца, а не где-либо, это:

l += [l.pop(0)]

Например:

>>> l = [1,2,3,4,5]
>>> l += [l.pop(0)]
>>> l
[2, 3, 4, 5, 1]

Ответ 3

Если вы не знаете позицию элемента, вам может потребоваться сначала найти индекс:

old_index = list1.index(item)

затем переместите его:

list1.insert(new_index, list1.pop(old_index))

или IMHO более чистый способ:

try:
  list1.remove(item)
  list1.insert(new_index, item)
except ValueError:
  pass

Ответ 4

Решение очень простое, но вам нужно знать индекс исходной позиции и индекс новой позиции:

list1[index1],list1[index2]=list1[index2],list1[index1]