@chistya

Как изменить имена ключей в словаре python?

Добрый день.
Есть словарь:
d1 = {1:'a', 2:'b', 3:'c', 4:'d', 5:'e'}
В нем необходимо заменить имена некоторых ключей. Например:
d2 = {'one':'a', 2:'b', 3:'c', 'four':'d', 'five':'e'}

Как это правильнее сделать? Вариант с кучей if выглядит громоздким:
for i in d1:
  if i == 1:
    d2['one'] = d1[i]
  ...
  else:
    d2[i] = d1[i]
  • Вопрос задан
  • 21545 просмотров
Решения вопроса 1
Assargin
@Assargin
Перед ответом смотрю наличие ✔ в ваших вопросах
Возможности просто переименовать ключ в словарях питона нет.

Пример присваивания новому ключу значение из старого ключа, с удалением старого ключа.
dictionary[new_key] = dictionary.pop(old_key)

Если же вопрос ваш в том, как построить сам алгоритм замены, то могу предложить следующий:

# словарь
d1 = {1:'a', 2:'b', 3:'c', 4:'d', 5:'e'}
# словарь замен: ключ - исходный ключ из d1, значение - на какой ключ его меняем
replacements = {1: 'one', 4: 'four', 5: 'five'}

for i in d1:
    if i in replacements:
        d1[replacements[i]] = d1.pop(i)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы