Verimli birleştirme işlemlerini destekleyen ve tanımlanmış bir geçiş sırasına sahip özel bir veri yapısı. Kurallardaki ve yönlerdeki geçişli bağımlılıklardan veri toplamak için yaygın olarak kullanılır. Daha fazla bilgi için burayı ziyaret edin.
Bir depset'in öğeleri karma oluşturulabilir ve tümü aynı türde olmalıdır (yerleşik type(x) işleviyle tanımlandığı gibi). Ancak depsets yalnızca karma kümeler değildir ve hızlı üyelik testlerini desteklemez. Genel bir küme veri türüne ihtiyacınız varsa tüm anahtarların True
ile eşlendiği bir sözlük kullanarak bunu simüle edebilirsiniz.
Bağımlılık kümeleri değiştirilemez. Oluşturucu işlevleri kullanılarak oluşturulmalı ve transitive
bağımsız değişkeni aracılığıyla diğer bağımlılık kümeleriyle birleştirilmeli veya artırılmalıdır.
order
parametresi, depset'in yinelenebilir bir öğeye dönüştürülmesi için yapılan geçiş türünü belirler. Dört olası değer vardır:
"default"
(eski adıyla"stable"
): Sıra belirtilmemiştir (ancak belirlenebilir)."postorder"
(eski adıyla"compile"
): Soldan sağa sıralama sonrası. Bu, tüm alt öğeleri en soldan başlayarak yinelemeli olarak, ardından doğrudan öğeleri en soldan başlayarak yinelemeli olarak geçer."preorder"
(eski adıyla"naive_link"
): Soldan sağa ön sipariş. Bu, doğrudan öğeleri en soldan başlayarak, ardından alt öğeleri en soldan başlayarak yinelemeli olarak geçer."topological"
(eski adıyla"link"
): Kökten yapraklara doğru topolojik sıralama. Soldan sağa doğru bir garanti yoktur.
İki bağımlılık kümesi yalnızca her ikisi de aynı sıraya sahipse veya birinde "default"
sırası varsa birleştirilebilir. İkinci durumda, sonuçta elde edilen depset'in sırası diğerinin sırasıyla aynı olur.
Bağımlılık kümeleri yinelenen değerler içerebilir ancak bunlar yineleme sırasında (to_list()
kullanılarak) bastırılır. Yinelenen değerler, sıralama semantiğini etkileyebilir.
Üyeler
to_list
list depset.to_list()
"default"
sıralı bağımlılık kümeleri ve sıralaması üst bağımlılık kümesinden farklı olan alt bağımlılık kümelerinin öğeleri için de sıra belirtilmez. Liste bir kopyadır. Listenin değiştirilmesi, depset'i etkilemez ve bunun tersi de geçerlidir.