2014-12-08 2 views
-3

검색 알고리즘을 구현하고 있습니다. 나는 파이썬에 관해서는 아직 초록색이지만, 제 문제는 저를 아주 이상하게 생각합니다. 링크가 포함 된 사전을 만듭니다. 그 다음에 dict을 인쇄하면 첫 번째 쌍이 제거됩니다. 이것은 나머지 코드에서도 마찬가지이므로 실패합니다.Dictonary가 첫 번째 쌍을 제거합니다.

links = {'A': 'B', 'A': 'C', 'D': 'A', 'E': 'A'} 
print links 

이 코드는 모두 프로그램 시작시 호출되는 코드입니다. 그것은 문자 그대로 두 번째 및 세 번째 호출이며, 여전히 이상합니다.

+2

사전 만 할 수있는 동안 고유 키를 저장하십시오. –

+0

@AshwiniChaudhary 나는 그것에 대해 생각하지 않았다. 그래도 의견을 주셔서 감사합니다! – Herbstein

답변

1

this 을 통해 이동

links = {'A': ['B', 'C'], 'D': ['A'], 'E': ['A']} 

동적으로 딕셔너리를 생성하는 경우, defaultdict 도움이됩니다, 그것은 목록 예를 들어, 키의 값을 초기화한다 dic, list 및 Tuples에 대해 그리고 위의 코드는 작동하지 않습니다. 왜냐하면 dic이 동일한 키에 대한 값을 저장하려고하기 때문입니다. 고유 키가 있어야 또는 그것이 무시 될 수 있도록 여기

A = {'A':'1','A':'2','B':'3'} 

주요 같은

이 고유하지 우선합니다 아래에 언급 코드는하지 않습니다

A = {'A1':'1', 'A2':'2', 'A3':'3'} 
0

키가 여러 번있는 경우 다른 방법을 사용하여 데이터를 저장해야합니다.

당신은리스트의 목록을 사용할 수 있지만,이 모든 좋은 DICT 기능을 사용하는 것을 허용하지 않습니다

links = [['A', 'B'], ['A', 'C'], ['D', 'A'], ['E', 'A']] 

은 다른 방법은 값 목록을 사용할 수 있습니다. 그것은 당신에게 더 나은 아이디어를 줄 것이다

from collections import defaultdict 
links = defaultdict(list) 
links['A'].append('B') 
links['A'].append('C') 
관련 문제