2013-06-23 6 views
1

사양 : Python3.3.2파이썬 - 어떻게 입력으로 사전을 취할

내가 할 의도 무엇 :

입력으로 사전을 가지고 출력으로 하나를 반환하지만, 반대 이제 열쇠와 값

질문 :은 내가 알아낼 수 있다고 생각합니다 키 - 값 - 스위치 부분. .하지만 내가 뭘하려

입력으로 사전을하는 방법을 알고 (그리고 dict로 객체 유형을 유지)하지 않습니다

a = input("Please enter a dictionary: ") 
print(a) 

결과 :{'a':1,'b':2}합니다. BUT :

이 결과는 type(a)을 사용하고 결과로 <class 'str'>을 표시하는 것으로서 문자열 개체로 밝혀졌습니다.

+0

당신은 여기에 게시 된 솔루션을 시도 할 수 있습니다 : http://stackoverflow.com/questions/988228/converting-a-string-to-dictionary – pkacprzak

+0

"내가 뭘 시도 했어"부분은 나에게 파이썬 2.7 인터프리터에서 사전을 제공합니다! –

+0

@zaphod : Python 2를 사용하고 있습니다. OP는 Python 3을 사용하고 있습니다.''raw_input''을 동등한 것으로 사용하십시오. –

답변

3

터미널에 입력 한 모든 내용은 항상 문자열입니다! 따라서 올바른 사전을 입력하면 다음과 같이 주어진 문자열을 먼저 실행하여 변환해야합니다.

import ast 
a = input("Please enter a dictionary: ") 
d = ast.literal_eval(a) 
print d 

그러나 질문에 대한 의견을 살펴보십시오. 나는 누군가가 당신에게 명령 줄에서 그처럼 dict을 파싱하도록 요구할 것이라고 생각하지 않는다. 따라서 태스크는 아마도 dict를 받아서 프린트하거나, 파이썬에서 mutables와 immutables의 차이점을 볼 수있는 함수를 작성하여 전달하는 방법을 원할 것입니다.

건배!

+0

아주 멋진 작은 트릭. – user2246674

+0

@ user2246674 아주 자주 여기에서 볼 수 있습니다. 그것은 eval()을 사용하는 것보다 더 좋고 더 안전합니다. – enpenax

+1

또 다른 옵션은''json.loads''를 사용하는 것입니다. –

관련 문제