파이썬에서 사전의 키-값 쌍을 인쇄하는 방법


175

파이썬 사전에서 키 값 쌍을 다음과 같이 출력하고 싶습니다.

key1 \t value1
key2 \t value2

나는 다음과 같이 할 수 있다고 생각했다.

for i in d:
    print d.keys(i), d.values(i)

하지만 분명히 있다는 것은은으로 이동하지 방법 keys()values()인수를하지 않습니다.


답변:


325

기존 코드는 약간만 조정하면됩니다. i 입니다 당신은 단지 그것을 사용해야합니다 그래서 키는 :

for i in d:
    print i, d[i]

키와 값이 모두 포함 된 반복자를 얻을 수도 있습니다. Python 2에서는 d.items()(키, 값) 튜플 목록을 d.iteritems()반환하고 동일한 항목을 제공하는 반복자를 반환합니다.

for k, v in d.iteritems():
    print k, v

Python 3에서는 d.items()반복자를 반환합니다. 목록을 얻으려면 반복자를 list()자신 에게 전달해야합니다 .

for k, v in d.items():
    print(k, v)

60

사전에 약간의 소개

d={'a':'apple','b':'ball'}
d.keys()  # displays all keys in list
['a','b']
d.values() # displays your values in list
['apple','ball']
d.items() # displays your pair tuple of key and value
[('a','apple'),('b','ball')

인쇄 키, 값 방법 1

for x in d.keys():
    print x +" => " + d[x]

다른 방법

for key,value in d.items():
    print key + " => " + value

당신은 키를 사용할 수 있습니다 iter

>>> list(iter(d))
['a', 'b']

다음을 사용하여 사전 키 값을 얻을 수 있습니다 get(key, [value]).

d.get('a')
'apple'

키가 사전에 없으면 기본값이 주어지면 값을 반환합니다.

d.get('c', 'Cat')
'Cat'


9

사전:

d={'key1':'value1','key2':'value2','key3':'value3'}

다른 한 줄 솔루션 :

print(*d.items(), sep='\n')

산출:

('key1', 'value1')
('key2', 'value2')
('key3', 'value3')

(그러나 이전에 아무도 이와 같은 것을 제안한 적이 없기 때문에 좋은 습관이 아닌 것 같습니다.)


1
나는 이것이 분명히 더 받아 들여지는 대답이라고 생각합니다! ...이 답변은 파이썬에서 대부분 무시되는 힘의 유형을 시연한다고 생각합니다 ... '()'를 제거하기 위해 다음을 수행 할 수도 있습니다 ... print(*[f"{': '.join(map(str,v))}" for i,v in enumerate(list(d.items()))], sep='\n').... 또는 다음을 수행 할 수 있습니다 편리하게 색인 번호 인쇄print(*[f"[{i}] {': '.join(map(str,v))}" for i,v in enumerate(list(d.items()))], sep='\n')
온실


4

사전에서 items () 를 호출하여 키 및 / 또는 값에 액세스 할 수 있습니다 .

for key, value in d.iteritems():
    print(key, value)

1
당신 items()은 당신의 텍스트의 첫 줄과 코드에 말했다 iteritems(). python3x에서 올바른 방법은 dict.items()처음 말한 것과 같습니다.
Joel Carneiro

3

dict 키로 출력 을 정렬하려면 컬렉션 패키지를 사용할 수 있습니다 .

import collections
for k, v in collections.OrderedDict(sorted(d.items())).items():
    print(k, v)

그것은 파이썬 3에서 작동합니다



1

이미 언급 된 방법 외에도 'viewitems', 'viewkeys', 'viewvalues'를 사용할 수 있습니다.

>>> d = {320: 1, 321: 0, 322: 3}
>>> list(d.viewitems())
[(320, 1), (321, 0), (322, 3)]
>>> list(d.viewkeys())
[320, 321, 322]
>>> list(d.viewvalues())
[1, 0, 3]

또는

>>> list(d.iteritems())
[(320, 1), (321, 0), (322, 3)]
>>> list(d.iterkeys())
[320, 321, 322]
>>> list(d.itervalues())
[1, 0, 3]

또는 itemgetter 사용

>>> from operator import itemgetter
>>> map(itemgetter(0), dd.items())     ####  for keys
['323', '332']
>>> map(itemgetter(1), dd.items())     ####  for values
['3323', 232]

0

간단한 사전 :

x = {'X':"yes", 'Y':"no", 'Z':"ok"}

Python 3에서 특정 (키, 값) 쌍을 인쇄하려면 (이 예제에서 색인 1의 쌍) :

for e in range(len(x)):
    print(([x for x in x.keys()][e], [x for x in x.values()][e]))

산출:

('X', 'yes')
('Y', 'no')
('Z', 'ok')

다음은 튜플의 모든 쌍을 인쇄하는 하나의 라이너 솔루션입니다.

print(tuple(([x for x in x.keys()][i], [x for x in x.values()][i]) for i in range(len(x))))

산출:

(('X', 'yes'), ('Y', 'no'), ('Z', 'ok'))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.