2013-05-08 4 views
0

У меня вопрос о логике кода Python, который я нашел в Интернете, который блестяще работает для определения dict из списка, отформатированного парами (то есть: "one 1/n two 2/n three 3/n") Код:пытается понять код Python

dict_number= {term:int(score) for (term,score) in list_number} 

List_number список, где проводятся значения, я не уверен, я понимаю, как Python понимает, что everyodd строка должна быть назначена в качестве члена и everyeven как значение (а в данном случае ИНТ этой строки). .. как термин, так и оценка не определены до этой строки кода, и каким-то образом python справляется с этим ... любая идея, как это работает?

+0

Python не требует объявления переменных, мы просто присваиваем значения именам переменных. –

ответ

3

Это называется dictionary comprehension и было представлено на Python 2.7. Это сокращенный способ создания словарей с помощью выражений.

Чем дольше способ написания этой строки:

dict_number = {} # an empty dictionary 

for term,score in list_number: 
    dict_number[term] = int(score) 

В Python нет переменных, как то, что вы можете использовать для других языков. В большинстве других языков переменная представляет собой «поле», которое может содержать определенный тип значения. Для того, чтобы держать что-то в поле, сначала вы должны создать окно, описывающее тип:

int x; 
x = 1; 

Python имеет понятие имен, которые указывают на значения. «Переменная» в python - это просто имя, которое может указывать на любое значение на любое типа. Только значения имеют типы, имена не имеют типов. Из-за этой гибкости имена не обязательно должны быть «инициализированы» заранее. Вы просто используете их, когда они вам нужны; и Python позаботится обо всем остальном.

+0

Спасибо, что очень полезно! – user2350962

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