Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 16, 2015 17:38:59

Aspergo
Зарегистрирован: 2014-08-31
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена местами значений и ключей в словаре

f={'food':'apple','book':'Gulliver','season':'spring','drink':'Coca-Cola','animal':'lion'}
for x,y in f.items():
    del f[x]
    f[y]=x
print f,len(f) 

Этот код действует.
А если изменить список:
 f={16:3,12:2,18:4,3:0,4:1}
Он возвращает список с меньшей длиной. Удаляет один из ключей. Почему так происходит?

Офлайн

#2 Апрель 16, 2015 18:23:44

vrabey
От: Киев
Зарегистрирован: 2013-04-17
Сообщения: 209
Репутация: +  23  -
Профиль   Отправить e-mail  

Смена местами значений и ключей в словаре

потому что не может быть двух одинаковых ключей
в частности ключу 3 присваивается новое значение - 16

f={16:3,12:2,18:4,3:0,4:1}
можно создать новый словарь
f = {value:key for key, value in f.items()}
print f, len(f)

Отредактировано vrabey (Апрель 16, 2015 18:30:32)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version