-1
내가 반경 k의 원이 그려있는 위에 좌표의 임의의 배열을파이썬 가입 사전 기능?
cluster={"discs":set([i,j]),
"left":x[i]<k or x[j]<k,
"right":x[i]>(1-k) or x[j]>(1-k)}
for some_cluster in cluster:
some_discs_set = some_cluster['discs']
for some_other_cluster in cluster:
some_other_discs_set = some_other_cluster['discs']
if some_cluster is some_other_cluster:
continue
discs_in_both_sets = set(some_discs_set).intersection(set(some_other_discs_set))
if len(discs_in_both_sets) != 0: #merge l/r boundaries
some_cluster['discs'] = some_discs_set.union(some_other_discs_set)
some_other_cluster['discs'] = {}
filtered_cluster = filter(lambda x: len(x['discs']), cluster)
내가 나타났습니다 (순간을 위해 좌/우 키를 무시)이 코드는 거의 모든 시간을 작동하지만 그 세 개의 디스크가 겹쳐지고 네 번째 디스크가 중첩되는 시간이 있습니다. 사전은 세 개 디스크가 아니라 네 개가 아닌 것으로 나타납니다. 내가 뭘 놓치고 있니? 특정 디스크를 놓치지 않는 반복 때문에 발생해야한다고 생각하지만 확실하지 않습니다. 파이썬 2.7.3를 사용
들으
당신이 원하는 경우
만 보여 코드 그것들의 모음이 아닌 하나의'cluster' 사전을 생성합니다. 귀하의 실제 코드가 이러한 dicts 또는 그 목록을 작성합니까? 'i'와'j' 값의 출처는 어디입니까? [짧고, 독립적 인, 올바른 예] (http://sscce.org)를 만들어보십시오. – Blckknght