2012-01-11 1 views

답변

11

당신은 이 작업을 수행 할 수 있습니다. 정말로,하지 마라. 당신은 그것에 대해 eval 필요하지 않습니다

my_dict = dict(list1) 
+0

+1 [Python의 eval을 사용하는 것은 나쁜 습관입니까?] (http://stackoverflow.com/questions/1832940/is-using-eval-in-python-a-bad-practice) – gecco

+1

'eval' 작품 표현식에서만. 그것은'exec'을 필요로 할 것입니다. 그래도 그는 그렇게해서는 안됩니다 : P –

+0

@ RicardoCárdenes 맞아, 고마워. –

2

: 당신은 동적 지역 변수가 필요하지 않습니다, 당신은 사전이 필요합니다.

로컬 환경에 직접 액세스하려면 vars 내장형 전화를 이용하십시오.

다음
>>> list1 = [("a", 4), ("b", 8)] 
>>> vars().update(dict(list1)) 
>>> a 
4 
>>> b 
8 

vars() 반환 지역 변수 바인딩과 DICT 예를 들면 다음과 같습니다 대화 형 세션입니다. 복제본이 아닌 유일한 인스턴스에 대한 포인터를 반환하기 때문에 해당 위치 (.update)에서 수정할 수 있습니다.

+0

이것은 사실이며, 그의 질문에 대답하지만 실제로 그렇게해서는 안됩니다. 그 (것)들을위한 새로운 사전을 만드는 것이 낫다. – Shawabawa

+1

[vars()'문서] (https://docs.python.org/2/library/functions.html#vars)에 따르면 : "인수없이 'vars()'는'locals 'locals 사전은 무시됩니다. 왜냐하면 locals 사전은 무시됩니다. – martineau