홈>
목록 이해력을 이해 한 후 누군가가 중첩 구조를 분석 할 수 있다면 다음 코드에서 유닛과 동료를 해독하려고합니다. 의도 된 결과는 나에게 분명하지만 역학은 그렇지 않습니다. 감사합니다.
rows = "ABCDEFGHI"
cols = "123456789"
boxes = cross(rows, cols)
row_units = [cross(r, cols) for r in rows]
column_units = [cross(rows, c) for c in cols]
square_units = [cross(rs, cs) for rs in ('ABC', 'DEF', 'GHI') for cs in ('123', '456', '789')]
unitlist = row_units + column_units + square_units
#trying to decipher following two lines
units = dict( ( s, [ u for u in unitlist if s in u ] ) for s in boxes)
peers = dict((s, set(sum(units[s], [])) - set([s])) for s in boxes)
수정-주어진 답변을 기반으로
units = dict((box, [unit for unit in unitlist if box in unit]) for box in boxes)
와 동일하다p>
units = {}
for box in boxes:
units[box] = []
for unit in unitlist:
if box in unit:
units[box].append(unit) # where is this in above shorthand form?
- 답변 # 1
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- JavaScript 변수를 HTML div에 '출력'하는 방법
- python - 문자열에서 특정 문자 제거
단위의 경우 기본적으로 상자 단위
s
를 확인합니다. 포함되어 있습니다.이제 동료를 위해 특정 상자의 모든 동료를 그룹화합니다. 세트로 사전에 저장
이 방법으로 볼 수 있습니다 :
peers = dict() for s in boxes: temp = set(sum(units[s],[])) temp = temp - set([s]) peers[s] = temp
이 코드는 상자sum(units[s],[])
의 단위로 모든 요소를 더합니다 단일 목록에서s
단일 목록에서 모든 반복을 제거하십시오.set(...)
현재 상자temp = temp - set([s])
를 제거 상자는 피어 자체가 될 수 없으므로 세트에서.s