[python] 사전 키를 인쇄하는 방법?

특정 Python 사전 키를 인쇄하고 싶습니다.

mydic = {}
mydic['key_name'] = 'value_name'

이제는 확인할 수 mydic.has_key('key_name')있지만 키 이름을 인쇄하면됩니다 'key_name'. 물론 사용할 수는 mydic.items()있지만 모든 키를 나열 하지는 않고 하나의 특정 키만 원합니다 . 예를 들어 다음과 같이 (의사 코드로) 예상됩니다.

print "the key name is", mydic['key_name'].name_the_key(), "and its value is", mydic['key_name']

어떤 거기에 name_the_key()키 이름을 인쇄하는 방법은?


편집 :
좋아, 당신의 반응에 많은 사람들에게 감사합니다! 🙂 나는 내 질문이 잘 짜여져 있지 않다는 것을 알고있다. 나는 key_name을 깨달았고 mydic['key_name']두 가지 다른 점 때문에 혼란 스러웠 key_name으며 사전 컨텍스트 에서 인쇄하는 것이 잘못되었다고 생각했습니다 . 그러나 실제로 ‘key_name’을 사용하여 키를 참조 할 수 있습니다! 🙂



답변

사전에는 정의에 따라 임의의 수의 키가 있습니다. “키”가 없습니다. 당신은이 keys()당신에게 파이썬 제공 방법, list모든 키를, 당신은이 iteritems()때문에, 키 – 값 쌍을 반환하는 방법을,

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

파이썬 3 버전 :

for key, value in mydic.items() :
    print (key, value)

따라서 키를 처리 할 수는 있지만 값에 결합하면 의미가 있습니다. 나는 당신의 질문을 이해하기를 바랍니다.


답변

또한 당신은 사용할 수 있습니다 ….

print(dictionary.items()) #prints keys and values
print(dictionary.keys()) #prints keys
print(dictionary.values()) #prints values


답변

흠, 당신이하고 싶은 것은 사전의 모든 키와 각각의 값을 인쇄하는 것이라고 생각 합니다.

그렇다면 다음을 원합니다.

for key in mydic:
  print "the key name is" + key + "and its value is" + mydic[key]

‘대신 +를 사용해야합니다.’ 쉼표는 해당 항목을 각각 별도의 줄에 넣습니다. 플러스는 동일한 줄에 넣습니다.


답변

dic = {"key 1":"value 1","key b":"value b"}

#print the keys:
for key in dic:
    print key

#print the values:
for value in dic.itervalues():
    print value

#print key and values
for key, value in dic.iteritems():
    print key, value

참고 : Python 3에서 dic.iteritems ()는 dic.items ()로 이름이 변경되었습니다.


답변

키 ‘key_name’의 이름은 key_name print 'key_name'이거나이를 나타내는 모든 변수입니다.


답변

파이썬 3에서 :

# A simple dictionary
x = {'X':"yes", 'Y':"no", 'Z':"ok"}

# To print a specific key (for example key at index 1)
print([key for key in x.keys()][1])

# To print a specific value (for example value at index 1)
print([value for value in x.values()][1])

# To print a pair of a key with its value (for example pair at index 2)
print(([key for key in x.keys()][2], [value for value in x.values()][2]))

# To print a key and a different value (for example key at index 0 and value at index 1)
print(([key for key in x.keys()][0], [value for value in x.values()][1]))

# To print all keys and values concatenated together
print(''.join(str(key) + '' + str(value) for key, value in x.items()))

# To print all keys and values separated by commas
print(', '.join(str(key) + ', ' + str(value) for key, value in x.items()))

# To print all pairs of (key, value) one at a time
for e in range(len(x)):
    print(([key for key in x.keys()][e], [value for value in x.values()][e]))

# To print all pairs (key, value) in a tuple
print(tuple(([key for key in x.keys()][i], [value for value in x.values()][i]) for i in range(len(x))))


답변

우리는 모두 “키 이름 인쇄”가 무엇을 의미하는지 추측하려고 노력하고 있으므로,이를 찌르겠습니다. 아마도 사전에서 값을 가져 와서 해당 키를 찾는 함수를 원하십니까? 역방향 조회?

def key_for_value(d, value):
    """Return a key in `d` having a value of `value`."""
    for k, v in d.iteritems():
        if v == value:
            return k

이 함수는 리턴 많은 키, 같은 값을 가질 수있는 주 일부 , 의도 아마 안 하나를 값을 갖는 키를 누릅니다.

이 작업을 자주 수행해야하는 경우 리버스 사전을 구성하는 것이 좋습니다.

d_rev = dict(v,k for k,v in d.iteritems())