2013-05-08 4 views
0

온라인으로 찾은 파이썬 코드의 논리에 대해 궁금한 점이 있습니다. 쌍으로 구성된 목록 (즉, "one 1/n two 2/n three 3/n")에서 사전을 정의 할 수 있습니다. 코드는파이썬 코드를 이해하려고 시도했습니다.

입니다.
dict_number= {term:int(score) for (term,score) in list_number} 

List_number 은 내가 파이썬 everyodd 문자열 용어로 할당 값 (물론이 경우 해당 문자열의 INT)로 everyeven되어야 함을 이해하는 방법을 이해 확실하지 오전, 값이 개최됩니다 목록입니다. .. 용어와 점수 모두 코드의이 줄 앞에 정의되지 않고 어떻게 든 파이썬은 이걸 이해할 수 있습니다 ... 어떤 생각이 효과가 있습니까?

+0

파이썬에는 변수 선언이 필요하지 않으며 변수 이름에 값을 할당하기 만하면됩니다. –

답변

3

이것은 dictionary comprehension라고 파이썬 2.7에 도입되었다. 표현식을 사용하여 사전을 만드는 빠른 방법입니다.

그 라인을 작성하는 더 이상 방법은 다음과 같습니다

dict_number = {} # an empty dictionary 

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

하는 파이썬에서, 다른 언어에서 사용 할 수있다 것과 어떤 변수가 없습니다. 대부분의 다른 언어에서 변수는 특정 유형의 값을 보유 할 수있는 "상자"입니다. 상자에 뭔가를 개최하려면 먼저 당신은 유형을 설명하여 상자를 만들 수 있습니다

int x; 
x = 1; 

파이썬은 값을 가리키는 이름의 개념을 가지고있다. 파이썬의 "변수"는 단순히 값을 으로 지정할 수있는 이름이며 어떤 유형이든 유형입니다. 값에는 유형 만 있고 이름에는 유형이 없습니다. 이러한 유연성으로 인해 이름을 미리 "초기화"할 필요는 없습니다. 필요할 때 사용할 수 있습니다. 파이썬은 나머지 부분을 처리 할 것입니다.

+0

고마워요. 매우 유용합니다! – user2350962

관련 문제