Verimli birleştirme işlemlerini destekleyen ve tanımlanmış bir tarama sırasına sahip özel bir veri yapısı. Genellikle kurallar ve görünümlerdeki geçişli bağımlılıklardan veri toplamak için kullanılır. Daha fazla bilgi için burayı ziyaret edin.
Bir depset'in öğeleri karma oluşturmaya uygun olmalı ve tümü aynı türde olmalıdır (yerleşik type(x) işlevi tarafından tanımlandığı gibi). Ancak depset'ler yalnızca karma küme 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 bu türden bir veri türünü simüle edebilirsiniz.
Depsetler değiştirilemez. Bunlar, yapıcı işlevleri kullanılarak oluşturulmalı ve transitive
bağımsız değişkeni aracılığıyla diğer depsetlerle birleştirilmeli veya genişletilmelidir.
order
parametresi, depset'i iteratöre dönüştürmek için yapılan tarama türünü belirler. Dört olası değer vardır:
"default"
(eski adıyla"stable"
): Sıralama belirtilmemiş (ancak deterministiktir)."postorder"
(eski adıyla"compile"
): Soldan sağa doğru bir son sipariş verme. Daha doğrusu, bu işlev tüm alt öğeleri soldan sağa doğru, ardından doğrudan öğeleri soldan sağa doğru yinelemeli olarak tarar."preorder"
(eski adıyla"naive_link"
): Soldan sağa ön sipariş. Daha açık belirtmek gerekirse, bu yöntem doğrudan öğeleri en soldaki öğeden başlayarak, ardından alt öğeleri de en soldaki öğeden başlayarak yinelemeli olarak tarar."topological"
(eski adıyla"link"
): Kökten yapraklara doğru topolojik bir sıralama. Soldan sağa doğru sıralama garantisi yoktur.
İki depo grubu yalnızca her iki depo grubunun da aynı sıraya sahip olması veya bunlardan birinin "default"
sırasına sahip olması durumunda birleştirilebilir. İkinci durumda, oluşturulan depset'in sırası diğer depset'in sırasıyla aynı olur.
Depset'ler yinelenen değerler içerebilir ancak yinelenen değerler iterasyon sırasında (to_list()
kullanılarak) atlanır. Yinelenen değerler sıralama anlamlarını etkileyebilir.
Üyeler
to_list
list depset.to_list()
"default"
sıralı depo kümeleri ve sırası üst depo kümesinden farklı olan alt depo kümelerinin öğeleri için de belirtilmez. Liste bir kopyadır; listede yapılan değişiklikler depoyu etkilemez ve depodaki değişiklikler de listeyi etkilemez.