2015-11-19 1 views
1

Игра с Python словарь понимания. Можете ли вы помочь мне понять, почему это переворачивает ключи, пары значений? Я не понимаю, почему значение также перевернуто. (также это 2am так.) Это интересный синтаксис.Python транспонирование описание

capitals = {'USA': 'Washington, DC','France':'Paris','Italy':'Rome' } ​ 

capitals_flip = {capitals[key]: key for key in capitals} 


capitals_flip 

​ {'Paris': 'France', 'Rome': 'Italy', 'Washington, DC': 'USA'} 
+0

Вы понимаете, как работают дикты? –

+0

В чем проблема? Что ты хочешь делать.? –

+0

Нет, полагаю, нет. Моя проблема - вторая строка, так что результат в моем сознании идет в США: США, но вместо этого он переворачивает значение. Хотя это намеченная цель и выше, я не совсем понимаю, что делает этот конкретный синтаксис. Я пытаюсь docs, но надеялся на простое объяснение. – sf2k

ответ

0

Dict comprehension - синтаксический сахар, который позволяет писать цикл, который строит словарь гораздо компактнее. Код

capitals_flip = {capitals[key]: key for key in capitals} 

более или менее похожи на

capitals_flip = {} 
for key in capitals: 
    capitals_flip[capitals[key]] = key 

другими словами, синтаксис

new_dict = { <new_dict_key> : <new_dict_value> for ... } 

Рассмотрим простой пример ...

squares = { x: x*x for x in range(10) } 

что строит словарь, сопоставляющий число к его квадрату для всех чисел от 0 до 9.

+0

Да, я уже использовал числовое значение и не имел проблемы с ним. Я думаю, что это просто запутало голову, когда она перевернула ключ, ценности вокруг. Но я вижу, что это один и тот же ключ структуры: значение, и я сопоставляю значение с ключом. Дух ... Глупый мозг. Спасибо! Это помогло. – sf2k

 Смежные вопросы

  • Нет связанных вопросов^_^