Должен ли я удалить элемент по индексу и добавить элемент в индекс?Замена элемента в OrderedDict?
Где я могу найти источник для OrderedDict
класс?
Должен ли я удалить элемент по индексу и добавить элемент в индекс?Замена элемента в OrderedDict?
Где я могу найти источник для OrderedDict
класс?
OrderedDict
использует положение значения, если оно уже присутствует; , если это не, просто рассматривает его как новое значение и добавляет его в конце.
Это in the documentation. Если вам нужно заменить и поддерживать порядок, вы должны сделать это вручную:
od = OrderedDict({i:i for i in range(4)})
# od = OrderedDict([(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)])
# Replace the key and value for key == 0:
d = OrderedDict(('replace','key') if key == 0 else (key, value) for key, value in od.items())
# d = OrderedDict([('replace', 'key'), (1, 1), (2, 2), (3, 3), (4, 4)])
# Single value replaces are done easily:
d[1] = 20 # and so on..
Кроме того, в верхней части страницы документации вы увидите ссылку на файл, содержащий, среди прочего, источник для класса OrderedDict
. Он находится в collections.py
и, фактически, first class defined.
Из документации Python:
Если новая запись перезаписывает существующую запись, исходное положение вставки остается неизменным. При удалении записи и повторной установке она переместит ее до конца.