DICT 같은목록 또는 튜플에서 사전의 키를 얻는 방법은 무엇입니까?
c = {1:'a', 2:'b', 3:'c'}
나는 목록에 열쇠를 얻을 필요가있다. 글 쓰고,
x = [c.key()]
하지만 작동하지 않습니다. 어떻게 할 수 있습니까? 사전의 키를 반복 할 수 있습니까? 내가 쓸 경우 의 키를 반환해야하는 c.key()
입니다. 하지만 그렇게하지는 않습니다. 왜 ?
DICT 같은목록 또는 튜플에서 사전의 키를 얻는 방법은 무엇입니까?
c = {1:'a', 2:'b', 3:'c'}
나는 목록에 열쇠를 얻을 필요가있다. 글 쓰고,
x = [c.key()]
하지만 작동하지 않습니다. 어떻게 할 수 있습니까? 사전의 키를 반복 할 수 있습니까? 내가 쓸 경우 의 키를 반환해야하는 c.key()
입니다. 하지만 그렇게하지는 않습니다. 왜 ?
는, c.keys()
그래서 당신은 목록을 확인하려면 dict_keys
객체를 반환, 당신이해야 :
x = list(c.keys())
이을 주조 dict_keys
객체가 첨자에없는 3 때문에 파이썬에서 필요하다
파이썬 2에서 x = c.keys()
은 list
을 반환합니다.
는 업데이트 : 당신이 그들을 상에 iterator
전화를하거나 직접 그들을 통해 루프하려고 할 때 기본적으로, 사전 그렇게
x = list(c) # list of keys
t = tuple(c) # tuple of keys
모두 파이썬에서 키의 목록과 튜플을 반환합니다, 자신의 키를 반환 2와 3
gah, 내가 파이썬을 알고 있다고 생각했을 때, 그들은 계속 나아가서 새로운 객체 유형을 만든다. -_- –
어쨌든'list'-ify로 가려면'.keys()'; 'list (c)'는'dict'가 키의 iterable이므로'keys'의'list'를 Py2와 Py3 모두에 대한 추가 작업없이 일관되게 얻을 것입니다. – ShadowRanger
@ J.J : 큰 발전입니다. 키와 아이템 뷰는 set-like이며, 모든 경우에 그들은 backing dictionary에서 반복 가능한 뷰이므로,'dict' 내용의 불필요한 얕은 복사본을 만들지 않아야한다. 그것이 아프는 유일한 경우는 당신이 반복 할 때'dict'을 돌연변이시키는 것입니다. 키를 추가하거나 제거하고 반복을 유지해야하는 경우 명시 적으로 얕은 복사를 반복하기 전에 뷰 객체를'list'에 래핑해야합니다. – ShadowRanger
'x = c.keys()'를 시도 했습니까? – karthikr