hoãn

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ự truyền tải đượ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 tập hợp phụ thuộc phải có thể băm và tất cả đều thuộc cùng loại (như được xác định bằng hàm type(x) tích hợp), nhưng các phần phụ thuộc không chỉ là tập hợp hàm băm và không hỗ trợ kiểm thử tư cách thành viên nhanh. Nếu cần một kiểu dữ liệu tập hợp chung, bạn có thể mô phỏng một kiểu dữ liệu bằng cách sử dụng từ điển, trong đó tất cả các khoá đều ánh xạ tới True.

Phần cài đặt là không thể thay đổi. Bạn phải tạo các phần tử này bằng hàm khởi tạo và hợp nhất hoặc tăng cường với các phần phụ thuộc khác thông qua đối số transitive.

Tham số order xác định loại truyền tải được thực hiện để chuyển đổi phần phụ thuộc thành đối tượng có thể lặp lại. Có thể có bốn giá trị:

  • "default" (trước đây là "stable"): Thứ tự không được chỉ định (nhưng có tính xác định).
  • "postorder" (trước đây là "compile"): Sắp xếp thứ tự từ trái sang phải sau thứ tự. Một cách chính xác, quy tắc này di chuyển đệ quy qua tất cả phần tử con ở ngoài cùng bên trái trước, sau đó là các phần tử trực tiếp ở ngoài cùng bên trái.
  • "preorder" (trước đây là "naive_link"): Sắp xếp trước từ trái sang phải. Một cách chính xác, thao tác này đi qua các thành phần trực tiếp ở ngoài cùng bên trái trước, sau đó chuyển qua các thành phần con ở ngoài cùng bên trái trước.
  • "topological" (trước đây là "link"): Cấu trúc liên kết từ gốc xuống đến lá. Không có sự bảo đảm cho thao tác từ trái sang phải.

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

Các phần đã đặt có thể chứa các giá trị trùng lặp nhưng các giá trị này sẽ bị chặn 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ự truyền tải của phần phụ thuộc. Lưu ý rằng thứ tự chưa được chỉ định (nhưng có tính xác định) cho các phần tử được thêm nhiều lần vào phần phụ thuộc. Thứ tự cũng không được chỉ định cho các phần phụ thuộc có thứ tự "default" và các phần tử của phần phụ thuộc con có thứ tự khác với thứ tự của phần phụ thuộc mẹ. Danh sách này là một bản sao; việc sửa đổi danh sách này không ảnh hưởng đến phần phụ thuộc và ngược lại.