2012-10-23 2 views
1

여기에 내가 해결하기 위해 노력하고있어 문제입니다 :내가 적절한 파이썬 데이터 구조를 필요

나는 상자 A, B, C

D을 공 a, b, c, d, e, f있다가, ... 각각은 앞서 언급 한 상자 중 하나에 있습니다. 그래서 예를 들어 공 a, b, cd은 상자 A에 있습니다. 나는 상자를 포함하는에 따라 각 공을 색상을 시도하고

e, j, pw 등 상자 B,에, 그래서 유지하고 효율적으로 정보를 처리하는 데이터 구조가 필요합니다.

내 첫번째 생각은 {'a':'A', 'b':'A',... 'w' : 'B' ...} 같은 딕셔너리를 유지했고 a의 값이 A 색상 그를 (예를 들어) 빨간색,하지만 난이이 경우에 정보를 유지하는 최선의 방법이라고 모르겠어요합니다.

boxes = { 'A' : set('a', 'b', 'c', 'd'), 'B' : set('e', 'j', 'p'), ... } 

그런 다음 당신은이 같은 설정 대응의 키와 색상 모든 공을 반복 할 수 있습니다

답변

2

또 다른 방법은 키와 상자와 값으로 공의 세트와 함께 사전을 유지 할 수 있습니다 색깔.

for box in boxes: 
    for ball in boxes[box]: 
     color(ball, box) 
+0

문제는 다음과 같습니다. 외부에서 ball j를 찾아서 색상을 지정한 다음 ball B를 찾고 색상을 지정하는 등의 요구 사항이 발생합니다. 상자를 통해 반복하고 볼을 색칠합니다. – danny

1

효율적인 것은 무엇을하고 있으며 얼마나 자주하고 있는지에 달려 있습니다. 추측을 위험에 빠뜨릴만한 정보는 많지 않습니다.

예를 들어, 같은 상자의 모든 볼이 같은 색인지 여부는 명확하지 않습니다. 그렇다면 공간 효율성을 위해 공 대신 상자에 색상을 지정할 수 있습니다. 그러나 당신은 무엇을 효율적으로 만들고 싶습니까?

코드 일부를 보여 주면 많은 문제를 해결할 수 있습니다.

+0

볼과 상자는 그 예입니다. 실제 상황은 내가 다른 GUI가있는 GUI 도구가 있고 매개 변수가 설정된 구성 파일이 있습니다. 내가 구성 파일을 구문 분석하고 GUI에서 동일한 매개 변수를 설정하려고합니다 (GUI에있는 다른 창에 있음). 이제 문제는 내가 설정하고자하는 매개 변수가있는 창을 동적으로 감지 할 수 없다는 것입니다. 그래서 "param : window"정보를 유지하고이를 구성 파일을 읽는 동안 사용하고 창에서 해당 매개 변수를 설정합니다 – danny

관련 문제