Depset

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

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

depset의 요소는 해싱이 가능해야 하며 기본 제공 type(x) 함수에서 정의한 모든 유형이 같아야 합니다. 하지만 depset은 단순히 해시 세트가 아니며 빠른 멤버십 테스트를 지원하지 않습니다. 일반 데이터 세트 유형이 필요한 경우 모든 키가 True에 매핑되는 사전을 사용하여 데이터 유형을 시뮬레이션할 수 있습니다.

종속 항목은 변경할 수 없습니다. 생성자 함수를 사용하여 만들고 transitive 인수를 통해 다른 디셋과 병합하거나 보강되어야 합니다.

order 매개변수는 디셋을 반복 가능으로 변환하기 위해 완료된 순회의 유형을 결정합니다. 가능한 값은 다음과 같이 4가지입니다.

  • "default"(이전 명칭: "stable"): 순서가 지정되지 않았지만 확정적입니다.
  • "postorder"(이전의 "compile"): 왼쪽에서 오른쪽으로 주문 후 순서 이 작업은 정확하게 모든 하위 요소를 가장 왼쪽, 즉 가장 왼쪽을 먼저 통과합니다.
  • "preorder"(이전의 "naive_link"): 왼쪽에서 오른쪽으로 선주문 이 작업은 정확하게 가장 왼쪽 요소를 먼저 통과한 다음 하위 요소를 가장 왼쪽을 반복적으로 탐색합니다.
  • "topological" (이전의 "link"): 루트에서 나뭇잎까지의 토폴로지 순서입니다. 왼쪽에서 오른쪽으로 보장되는 것은 없습니다.

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

Depset은 중복 값을 포함할 수 있지만 반복할 때 억제됩니다 (to_list() 사용). 중복은 순서 의미 체계를 방해할 수 있습니다.

회원

할 일 목록

list depset.to_list()

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