В Python, как переместить элемент в определенный индекс в списке?
Переместить элемент внутри списка?
Ответ 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]