Depset

문제 신고 소스 보기

효율적인 병합 작업을 지원하고 정의된 순회 순서를 갖는 특수 데이터 구조입니다. 일반적으로 규칙과 측면에서 전이 종속 항목에서 데이터를 누적하는 데 사용됩니다. 자세한 내용은 여기를 참고하세요.

depset의 요소는 해시 가능해야 하고 모든 유형이 동일해야 합니다 (기본 제공 type(x) 함수에서 정의한 대로). 그러나 desetset은 단순 해시 집합이 아니며 빠른 멤버십 테스트를 지원하지 않습니다. 일반 데이터 세트 유형이 필요한 경우 모든 키가 True에 매핑되는 딕셔너리를 사용하여 데이터 세트를 시뮬레이션할 수 있습니다.

오프셋은 변경할 수 없습니다. 생성자 함수를 사용하여 만들고 transitive 인수를 통해 다른 depset과 병합 또는 보강해야 합니다.

order 매개변수는 depset을 반복 가능 항목으로 변환하기 위해 완료된 순회 유형을 결정합니다. 가능한 값은 4가지입니다.

  • "default"(이전의 "stable"): 순서가 지정되지 않았지만 확정적입니다.
  • "postorder" (이전의 "compile"): 왼쪽에서 오른쪽 순서로 정렬 이 작업은 정확하게 모든 하위 요소를 가장 왼쪽부터 순회하고 그다음으로 직접 요소를 가장 왼쪽부터 순회합니다.
  • "preorder"(이전의 "naive_link"): 왼쪽에서 오른쪽으로 선주문 여기서는 직접 요소를 가장 왼쪽을 먼저 순회한 다음 하위 요소를 가장 왼쪽부터 순회합니다.
  • "topological"(이전의 "link"): 루트에서 나뭇잎까지의 토폴로지 순서입니다. 왼쪽에서 오른쪽으로 보장할 수 없습니다.

두 디셋 모두 두 디플릿의 순서가 같거나 둘 중 하나의 순서가 "default"인 경우에만 병합할 수 있습니다. 후자의 경우 결과 depset의 순서는 다른 주문의 순서와 동일합니다.

오프셋에 중복된 값이 포함될 수 있지만 반복할 때 이 값은 표시되지 않습니다 (to_list() 사용). 중복이 정렬 의미 체계를 방해할 수 있습니다.

회원

할 일 목록

list depset.to_list()

depset의 순회 순서대로 중복 없이 요소 목록을 반환합니다. 디플릿에 두 번 이상 추가된 요소는 순서가 지정되지 않지만 확정적입니다. "default"으로 정렬된 디셋과 상위 디셋의 순서가 다른 하위 디셋의 요소에서도 순서가 지정되지 않습니다. 목록은 카피의 목록입니다. 목록을 수정해도 디셋에 영향을 미치지 않으며 반대의 경우도 마찬가지입니다.