Вставка списка Python (0,...) не в порядкеPython

Программы на Python
Anonymous
Вставка списка Python (0,...) не в порядке

Сообщение Anonymous »

Я работаю со списком словарей Python. Я пытаюсь упорядочить список, перемещая элементы словаря вверх. Однако list.insert(0, dictItem) не работает, поскольку я ожидаю, что каждая итерация будет вставляться в начало списка. (т. е. стек с выталкиванием вниз). Но первая итерация помещается в индекс 0, а следующая в индекс 1.
Что мне не хватает?

Код: Выделить всё

theList = [{"V":"1"},{"V":"2"},{"V":"3"},{"V":"4"},{"V":"5"}]

i = -1
for vMove in {"4", "5"}:
for listDict in theList:
i += 1
vName = listDict.get("V")
if(vName == vMove):
break
theList.insert(0, theList.pop(i))
i = -1

print(theList)

#Expected Result: [{'V': '5'}, {'V': '4'}, {'V': '1'}, {'V': '2'}, {'V': '3'}]
#Actual Result: [{'V': '4'}, {'V': '5'}, {'V': '1'}, {'V': '2'}, {'V': '3'}]
Да, я знаю, что могу изменить порядок vMove, но мне интересно, почему это работает именно так.

Подробнее здесь: https://stackoverflow.com/questions/790 ... t-of-order

Вернуться в «Python»