Một cấu trúc dữ liệu chuyên biệt hỗ trợ các hoạt động 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 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á ánh xạ đến True
.
Các phần đệm là không thể thay đổi. Bạn phải tạo các hàm khởi tạo đó bằng cách sử dụng hàm hàm khởi tạo và hợp nhất hoặc tăng cường với các phần giải mã 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 trình gỡ cài đặt thành có thể lặp lại. Có thể có bốn giá trị:
"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"
): Một thứ tự cấu trúc liên kết từ gốc đến lá. Không có sự đảm bảo từ trái sang phải.
Bạn chỉ có thể hợp nhất hai nhóm phần phụ thuộc nếu cả hai nhóm phần phụ thuộc đều có cùng thứ tự hoặc một trong hai nhóm có thứ tự "default"
. Trong trường hợp sau, thứ tự của tập hợp thu được sẽ giống với thứ tự của tập hợp 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 có các phần tử trùng lặp, theo thứ tự truyền tải của tập hợp. Lưu ý rằng thứ tự không được chỉ định (nhưng mang tính xác định) cho các phần tử đã được thêm nhiều lần vào phần khởi động. 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 này là một bản sao; việc sửa đổi danh sách này không ảnh hưởng đến depset và ngược lại.