2012-11-08 2 views
0

내가 가지고있는 경우 d = {"key": (5,4,"val1","val2",2)} 튜플에서 val1을 어떻게 가져 와서 목록으로 만들 수 있습니까?파이썬 : 사전 값을리스트로 변환

+0

당신은 (각 값에 대해 동일한 튜플 형식으로) 여러 키에 대해이 작업을 수행하려면, 아니면 그냥 할 일 하나의 열쇠? – ezod

+1

그 큰 튜플에 대해 일종의 데이터 구조를 사용해야합니다. ([namedtuple'] (http://docs.python.org/2/library/collections.html#collections.namedtuple)과 같습니다.) 복잡한 ad-hoc 튜플은 분리되지 않는 한 실제로 사용하면 안됩니다 제작 직후입니다. (즉 함수에서 여러 값을 반환 할 때 또는 중급 결과로 중독/zip()/등 사용하는 목록 munging 코드) – millimoose

+2

나는 downvotes .... 이유를 얻지 않는다 오우 유효한 질문 및 downvoters는 적어도 그들의 행동을 설명 할 수 있었다 ... SO에 환영하십시오 (operator.itemgetter를 사용하십시오) –

답변

6

[d['key'][2]] 트릭을 할해야 ...

하면 무너 뜨 :

  • d['key']
  • [2] 목록을 아래 첨자와 그것에서 원하는 항목을 가져옵니다 사전에서 튜플을 retieves
  • 바깥 쪽 괄호는 최종 개체를 목록에 넣습니다.
+0

대단히 감사합니다! –

1

당신은 단순히 의미합니까 :

[value[2] for value in d.values()] 
+0

이것은 그가 [놀랍게도 찾을 것이라고 추측하고있는] [[ 'v', 'a', 'l', '1']'이 아니라 '['val1 ']'이 아니라 ... 원한다. 말하기가 너무 어렵습니다. – abarnert

+0

@abanert : 나는 OP가'[ 'v', 'a', 'l', '1'] '를 원한다고 생각했다. 질문을 다시 읽으면 해석이 더 좋은 것처럼 보입니다. –

0

당신이 사전에 모든 키의 해당 위치에있는 값의 목록을 원하는 dictioanries. 우리 BDFL 그지도, 필터를 좋아하지 않는 경우에도

, 람다 매우 구축 ;-)

0
from operator import itemgetter 

values = map(itemgetter(2), d.values()) 

큰위한 가장 빠른 방법이어야한다 : 가정

list(d['key'][2])