Verimli birleştirme işlemlerini destekleyen ve tanımlanmış bir geçiş sırası olan özel bir veri yapısı. Genellikle kurallar ve yönlerdeki geçişli bağımlılıklardan veri toplamak için kullanılır. Daha fazla bilgiyi burada bulabilirsiniz.
Bir depset'in öğeleri karma oluşturmaya uygun olmalı ve tümü aynı türde (yerleşik type(x) işlevi tarafından tanımlandığı şekilde) olmalıdır. Ancak depset'ler yalnızca karma küme değildir ve hızlı üyelik testlerini desteklemez. Genel bir veri türüne ihtiyacınız varsa tüm tuşların True
ile eşlendiği sözlük kullanarak bir veri türü simüle edebilirsiniz.
Derinler sabittir. 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. Olası dört değer vardır:
"default"
(eski adıyla"stable"
): Sıralama belirtilmemiş (ancak deterministiktir)."postorder"
(eski adıyla"compile"
): Soldan sağa doğru sipariş sonrası. 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 garanti yoktur.
İki erişim noktası yalnızca her iki noktanın sırası aynıysa veya iki noktanın sırası "default"
olduğunda 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 bu değerler yineleme sırasında engellenir (to_list()
kullanılarak). Yinelemeler sıralama anlamını etkileyebilir.
Üyeler
to_list
list depset.to_list()Öğe listesini, öğenin geçiş sırasına göre, yineler olmadan döndürür. Sıranın, depset'e birden fazla kez eklenen öğeler için belirtilmediğini (ancak belirlendiğini) unutmayın. Ayrıca,
"default"
sıralı bölümler ve sırası üst kuruluştakinden farklı olan alt ayrıntılar öğeleri için de sıra belirtilmemiştir. Bu liste bir kopyadır; Değişiklik yapmanızın arayüz üzerinde herhangi bir etkisi yoktur. Tam tersi de geçerlidir.