2012-01-14 3 views
2

내가하는 한 가지 질문이 있습니다. 아주 가까운 대답을 얻었습니다 ... 기본적으로 질문은 두 개의 사전을 얻고 두 사전과 교차하는 요소를 찾아야한다는 것입니다. 새로운 사전에 그 요소 (두 dict의 한 동일한 키와 두 dics의 두 값)를 만듭니다.사전 교차로 후 괄호 제거하기

a = {'A':17,'B':31,'C':42,'D':7,'E':46,'F':39,'G':9} 
b = {'D':8,'E':3,'F':2,'g':5} 

def intersect(a,b): 
    c = set(a).intersection(set(b)) 
    d = {} 
    for i in c: 
     if i in a: 
      d[i] = int(a[i]),int(b[i]) 
    return d 

OUTPUT: {'E': (46, 3), 'D': (7, 8), 'F': (39, 2)} 

내가 좋아하는 출력 싶어 { 'E': 46, 3, 'D': 7, 8, 'F': 39, 2}

나는 제거하려면 어떻게 값 주변의 괄호?

+0

당신은'string' 또는'dict'입니다 원하는 출력이 같은

뭔가 사전에게 당신이 원하는 방식으로 인쇄 할 것인가? 당신은 그와 같은 사전을 얻을 수 없기 때문에 (그러나 당신은 그 표현을 바꿀 수 있습니다). –

답변

4

작성한 코드는 아무 것도 출력하지 않습니다. 그러나 괄호를 제거하려는 경우이 값을 사용할 수 있습니다. 좀 더 간결하고

str(intersect(a, b)).translate(None, '()') 
0

당신이보고있는 출력 효율적입니다

str(intersect(a, b)).replace('(', '').replace(')', '') 

또는 동등이, 당신의 사전의 파이썬 표현입니다. 당신이 만든 것 (그리고 내가 말할 수있는 한 당신이 올바르게 만들었습니다 - 당신이 원하는 것입니다)은 키를 아이템 쌍에 매핑하는 사전입니다. 쌍은 튜플이며 주위에 괄호가 찍혀 있습니다.

당신이 원하는 것은 마치 사전을 가져 와서 특정 방식으로 서식을 지정한 방법입니다.

def dictionary_printer(d): 
    print "{%s}" % ', '.join(
     [("'%s': %s" % (key, ', '.join(map(str,value)))) 
     for key, value in d.items()] 
    )