Увеличивать последующие ключи словаря при вставке нового ключаPython

Программы на Python
Ответить
Anonymous
 Увеличивать последующие ключи словаря при вставке нового ключа

Сообщение Anonymous »

У меня есть большой (упорядоченный) словарь (от 10 000 до 50 000 статей):

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

from collections import OrderedDict

d = OrderedDict()
...
d[100] = [x100, y100]
d[101] = [x101, y101]
d[102] = [x102, y102]
...
Я хочу вставить новую запись между ключами 100 и 101 в словаре и обновить каждый ключ, который больше первого ключа.

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

...
d[100] = [x100, y100]
d[101] = [x_inserted, y_inserted] # new entry
d[102] = [x101, y101] # before d[101]
d[103] = [x102, y102] # before d[102]
...
Как это сделать?
Когда я удаляю записи из словаря, я могу использовать этот подход

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

for key in d:
if key > inserted_value:
d[key - 1] = d[key]
del d[key]
но это не работает, когда я добавляю записи (поскольку d[key + 1] существует до того, как я обновляю ключ).

Подробнее здесь: https://stackoverflow.com/questions/346 ... -a-new-key
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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