2012-04-08 3 views
2

이 코드 줄을 유효하게 만들 수 있습니까?파이썬 사전에서 여러 번 할당

description, content, state, city, datetime = makeTupleRightOrder(dictionary) 

이 makeTupleRightOrder은 할당의 왼쪽에서 '매개 변수'를 얻을 문자열로 이름을 변환하고 사전에서 그 값을 받고 목록을 작성한다.

+0

'map (lambda x : dictionary [x], [description, content, state, city, datetime])' – Abhijit

+0

'locals(). update (dictionary)'는 사전을 다음과 같이 변환하는 최종 목표를 달성합니다. 변수 이름. –

+1

@StevenRumbalski'locals()'의 내용은 수정하면 안됩니다. –

답변

3

아니요. 함수는 할당의 왼쪽에 무엇이 있는지 잘 모릅니다. 함수가 할당 된 경우에도 변수의 이름이 키와 다를 수 있습니다.

2

종류가 맞습니다. 일반적인 경우에는이를 수행 할 수 없습니다. (이를

city, content, datetime, description, state = [dictionary[k] for k in sorted(dictionary)] 

: 당신이 할 수 항상 키의 관점에서 당신은 DICT를 풀고 변수가 올바른 (알파벳 순서)에 할 수 있는지 확인 순으로 정렬 키이며, 예를 들어, 사전 키의 압축을 푸는 변수와 동일한 이름의 사전 키가 있다고 가정합니다.

참고

당신이이 일을 강요하는 상황으로 실행하는 경우, 나는 다른 코드를 설계 고려할 것입니다. 구현에 결함이있는 것 같습니다.

+0

멋진 측면 사고! – kindall

+0

나는 이것이 멋진 일일 수 있다고 생각했다. x) –

+0

이것은 분명히 너무 멀리 지나가고 있지만 왼쪽의 변수를 서로에 대해 '알고있는'스마트 오브젝트로 만든 경우, 오른쪽에있을 때까지 데이터를 교환하게 할 수있다 값. 그것은 시원할 것이지만, 전혀 무의미합니다. –

관련 문제