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 bunu taklit 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 iteratif bir öğeye 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. Bu oyun, daha önce sol tarafta kalan tüm çocukları, ardından en solda olan doğrudan öğeleri tekrar tekrar katlıyor."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 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, sonuçta ortaya çıkan sıralamanın sırası diğerinin sırası ile aynı olur.
Depset'ler yinelenen değerler içerebilir ancak bunlar 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.