hoãn

Báo cáo vấn đề Xem nguồn Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Một cấu trúc dữ liệu chuyên biệt hỗ trợ các thao tác hợp nhất hiệu quả và có thứ tự duyệt được xác định. Thường dùng để tích luỹ dữ liệu từ các phần phụ thuộc bắc cầu theo các quy tắc và khía cạnh. Để biết thêm thông tin, hãy xem tại đây.

Các phần tử của một tập hợp phải có thể băm và tất cả đều thuộc cùng một kiểu (như được xác định bởi hàm type(x) tích hợp). Tuy nhiên, các phần phụ thuộc không chỉ là tập hợp băm và không hỗ trợ kiểm thử thành viên nhanh. Nếu cần có một loại dữ liệu tập hợp chung, bạn có thể mô phỏng một loại dữ liệu bằng cách sử dụng từ điển trong đó tất cả các khoá đều ánh xạ đến True.

Depset không thể thay đổi. Bạn nên tạo các tập hợp này bằng hàm khởi tạo và hợp nhất hoặc mở rộng với các tập hợp phần phụ thuộc khác thông qua đối số transitive.

Tham số order xác định loại hoạt động truy cập được thực hiện để chuyển đổi depset thành một tập hợp có thể lặp lại. Có 4 giá trị có thể có:

  • "default" (trước đây là "stable"): Thứ tự chưa được chỉ định (nhưng có tính xác định).
  • "postorder" (trước đây là "compile"): Thứ tự sau từ trái sang phải. Chính xác là hàm này sẽ duyệt qua tất cả các phần tử con từ trái sang phải, sau đó là các phần tử trực tiếp từ trái sang phải.
  • "preorder" (trước đây là "naive_link"): Đặt hàng trước từ trái sang phải. Chính xác, thao tác này truyền tải các phần tử trực tiếp ở vị trí thứ nhất bên trái, sau đó truyền đệ quy các phần tử con ở góc ngoài cùng bên trái trước.
  • "topological" (trước đây là "link"): Thứ tự tô pô từ gốc xuống lá. Không đảm bảo thứ tự từ trái sang phải.

Bạn chỉ có thể hợp nhất hai phần lại nếu cả hai phần lại có cùng thứ tự hoặc một trong số đó có thứ tự "default". Trong trường hợp sau, thứ tự của depset thu được sẽ giống với thứ tự của depset còn lại.

Depset có thể chứa các giá trị trùng lặp nhưng các giá trị này sẽ bị loại bỏ khi lặp lại (sử dụng to_list()). Các giá trị trùng lặp có thể ảnh hưởng đến ngữ nghĩa thứ tự.

Hội viên

to_list

list depset.to_list()

Trả về danh sách các phần tử, không trùng lặp, theo thứ tự duyệt của depset. Xin lưu ý rằng thứ tự không được chỉ định (nhưng có tính xác định) đối với các phần tử được thêm nhiều lần vào depset. Thứ tự cũng không được chỉ định cho các nhóm phần phụ thuộc được sắp xếp theo "default" và cho các phần tử của nhóm phần phụ thuộc con có thứ tự khác với nhóm phần phụ thuộc mẹ. Danh sách là bản sao; việc sửa đổi danh sách không ảnh hưởng đến phần phụ thuộc và ngược lại.