ayarla

Sorun bildir Kaynağı göster Nightly 8.1 · 8.0 · 7.5 · 7.4 · 7.3 · 7.2

Yerleşik ayar türü. Küme, benzersiz değerlerin (kümenin öğeleri) değişken, iterlenebilir bir koleksiyonudur. Bir grubun tür adı "set".

Kümeler, bir değer eklemek, kaldırmak veya değerin varlığını kontrol etmek için sabit süreli işlemler sağlar. Kümeler, karma tablo kullanılarak uygulanır. Bu nedenle, tıpkı bir sözlüğün anahtarları gibi, kümelerin öğeleri de karma oluşturmaya uygun olmalıdır. Bir değer, yalnızca bir sözlüğün anahtarı olarak kullanılabiliyorsa bir kümenin öğesi olarak kullanılabilir.

Kümeler, set() yerleşik işlevi kullanılarak oluşturulabilir. Bu işlev, isteğe bağlı bağımsız değişkeninin benzersiz öğelerini içeren yeni bir küme döndürür. Bu bağımsız değişken, yinelenebilir olmalıdır. set() işlevi bağımsız değişken olmadan çağrıldığında boş bir küme oluşturulur. Kümelerin değişmez söz dizimi yoktur.

in ve not in işlemleri, bir değerin bir sette olup olmadığını kontrol eder:

s = set(["a", "b", "c"])
"a" in s  # True
"z" in s  # False

Kümeler iterlenebilir olduğundan for döngüsünün, liste kapsamının ve iterlenebilir öğelerde çalışan çeşitli yerleşik işlevlerin operanı olarak kullanılabilir. Uzunluğu, len() yerleşik işlevi kullanılarak alınabilir ve iterasyon sırası, öğelerin sete ilk eklendikleri sıradır:

s = set(["z", "y", "z", "y"])
len(s)       # prints 2
s.add("x")
len(s)       # prints 3
for e in s:
    print e  # prints "z", "y", "x"

Boole bağlamında kullanılan bir küme, yalnızca boş değilse doğrudur.

s = set()
"non-empty" if s else "empty"  # "empty"
t = set(["x", "y"])
"non-empty" if t else "empty"  # "non-empty"

Kümeler, == ve != kullanılarak eşitlik veya eşitsizlik açısından karşılaştırılabilir. Bir s grubu, t aynı öğeleri içeren bir grupsa ve yalnızca bu durumda t'a eşittir; iterasyon sırası önemli değildir. Özellikle, bir küme, öğelerinin listesine eşit değildir. Kümeler diğer kümelere göre sıralanmaz ve <, <=, >, >= kullanarak iki kümeyi karşılaştırma veya bir küme dizisini sıralama girişimi başarısız olur.

set() == set()              # True
set() != []                 # True
set([1, 2]) == set([2, 1])  # True
set([1, 2]) != [1, 2]       # True

İki küme üzerinde | işlemi, iki kümenin birleşimini döndürür: orijinal kümelerin birinde veya her ikisinde bulunan öğeleri içeren bir küme.

set([1, 2]) | set([3, 2])  # set([1, 2, 3])

İki küme üzerinde & işlemi, iki kümenin kesişim kümesini döndürür: Yalnızca orijinal kümelerin her ikisinde de bulunan öğeleri içeren bir küme.

set([1, 2]) & set([2, 3])  # set([2])
set([1, 2]) & set([3, 4])  # set()

İki küme üzerinde - işlemi, iki kümenin farkını döndürür: sağ taraftaki kümede bulunmayan ancak sol taraftaki kümede bulunan öğeleri içeren bir küme.

set([1, 2]) - set([2, 3])  # set([1])
set([1, 2]) - set([3, 4])  # set([1, 2])

İki küme üzerinde ^ işlemi, iki kümenin simetrik farkını döndürür: iki orijinal kümeden yalnızca birinde bulunan ancak her ikisinde de bulunmayan öğeleri içeren bir küme.

set([1, 2]) ^ set([2, 3])  # set([1, 3])
set([1, 2]) ^ set([3, 4])  # set([1, 2, 3, 4])

Yukarıdaki işlemlerin her birinde, elde edilen kümenin öğeleri iki operand kümesindeki sıralarını korur. Sol taraftan alınan tüm öğeler, yalnızca sağ tarafta bulunan öğelerden önce sıralanır.

İlgili genişletilmiş atamalar (|=, &=, -= ve ^=) soldaki kümeyi yerinde değiştirir.

s = set([1, 2])
s |= set([2, 3, 4])     # s now equals set([1, 2, 3, 4])
s &= set([0, 1, 2, 3])  # s now equals set([1, 2, 3])
s -= set([0, 1])        # s now equals set([2, 3])
s ^= set([3, 4])        # s now equals set([2, 4])

Starlark'taki tüm değişken değerler gibi bir küme de dondurulabilir. Dondurulan kümeyi güncellemeye çalışan tüm sonraki işlemler başarısız olur.

Üyeler

add

None set.add(element)

Gruba bir öğe ekler.

Kümede zaten mevcut bir değeri add olarak işaretleyebilirsiniz. Bu işlem kümeyi değiştirmez.

Bir gruba birden fazla öğe eklemeniz gerekiyorsa update veya |= artırılmış atama işlemine bakın.

Parametreler

Parametre Açıklama
element required
Eklenecek öğe.

temizle

None set.clear()

Kümenin tüm öğelerini kaldırır.

fark

set set.difference(*others)

Bu kümenin diğer kümelerle arasındaki farkı içeren yeni ve değiştirilebilir bir küme döndürür.

s ve t kümelerse s.difference(t), s - t ile eşdeğerdir. Ancak - işleminin her iki tarafın da küme olmasını gerektirdiğini, difference yönteminin ise dizileri ve sözlükleri de kabul ettiğini unutmayın.

difference işlevi bağımsız değişken olmadan çağrılabilir. Bu işlev, kümenin bir kopyasını döndürür.

Örneğin,

set([1, 2, 3]).difference([2])             # set([1, 3])
set([1, 2, 3]).difference([0, 1], [3, 4])  # set([2])

Parametreler

Parametre Açıklama
others required
Kümeler, karma oluşturmaya uygun öğe dizileri veya sözlükler.

difference_update

None set.difference_update(*others)

Diğer gruplarda bulunan tüm öğeleri bu gruptan kaldırır.

s ve t küme ise s.difference_update(t), s -= t ile eşdeğerdir. Ancak -= genişletilmiş atamasının her iki tarafının da küme olmasını gerektirdiğini, difference_update yönteminin ise dizileri ve sözlükleri de kabul ettiğini unutmayın.

difference_update işlevi herhangi bir argüman olmadan çağrılabilir. Bu durumda, küme değişmeden kalır.

Örneğin,

s = set([1, 2, 3, 4])
s.difference_update([2])             # None; s is set([1, 3, 4])
s.difference_update([0, 1], [4, 5])  # None; s is set([3])

Parametreler

Parametre Açıklama
others required
Kümeler, karma oluşturmaya uygun öğe dizileri veya sözlükler.

sil

None set.discard(element)

Mevcutsa bir öğeyi gruptan kaldırır.

Kümede bulunmayan bir değeri discard olarak ayarlayabilirsiniz. Bu durumda, küme değişmez. Mevcut olmayan bir öğeyi kaldırma girişimini başarısız kılmak istiyorsanız bunun yerine remove değerini kullanın. Bir kümeden birden fazla öğe kaldırmanız gerekiyorsa difference_update veya -=geliştirilmiş atama işlemine bakın.

Örneğin,

s = set(["x", "y"])
s.discard("y")  # None; s == set(["x"])
s.discard("y")  # None; s == set(["x"])

Parametreler

Parametre Açıklama
element required
Atılacak öğe. Karma oluşturmaya uygun olmalıdır.

kesişim

set set.intersection(*others)

Bu kümenin diğer kümelerle kesişimini içeren yeni ve değiştirilebilir bir küme döndürür.

s ve t kümelerse s.intersection(t), s & t ile eşdeğerdir. Ancak & işleminin her iki tarafın da küme olmasını gerektirdiğini, intersection yönteminin ise dizileri ve sözlükleri de kabul ettiğini unutmayın.

intersection işlevi bağımsız değişken olmadan çağrılabilir. Bu işlev, kümenin bir kopyasını döndürür.

Örneğin,

set([1, 2]).intersection([2, 3])             # set([2])
set([1, 2, 3]).intersection([0, 1], [1, 2])  # set([1])

Parametreler

Parametre Açıklama
others required
Kümeler, karma oluşturmaya uygun öğe dizileri veya sözlükler.

intersection_update

None set.intersection_update(*others)

Diğer tüm koleksiyonlarda bulunmayan öğeleri bu koleksiyondan kaldırır.

s ve t kümelerse s.intersection_update(t), s &= t ile eşdeğerdir. Ancak &= genişletilmiş atamasının her iki tarafın da küme olmasını gerektirdiğini, intersection_update yönteminin ise dizileri ve sözlükleri de kabul ettiğini unutmayın.

intersection_update işlevi herhangi bir argüman olmadan çağrılabilir. Bu durumda, küme değişmeden kalır.

Örneğin,

s = set([1, 2, 3, 4])
s.intersection_update([0, 1, 2])       # None; s is set([1, 2])
s.intersection_update([0, 1], [1, 2])  # None; s is set([1])

Parametreler

Parametre Açıklama
others required
Kümeler, karma oluşturmaya uygun öğe dizileri veya sözlükler.

isdisjoint

bool set.isdisjoint(other)

Bu kümenin başka bir kümeyle ortak öğesi yoksa doğru değerini döndürür.

Örneğin,

set([1, 2]).isdisjoint([3, 4])  # True
set().isdisjoint(set())         # True
set([1, 2]).isdisjoint([2, 3])  # False

Parametreler

Parametre Açıklama
other required
Bir küme, karma oluşturmaya uygun öğe dizisi veya sözlük.

issubset

bool set.issubset(other)

Bu kümenin başka bir kümenin alt kümesi olması durumunda doğru değerini döndürür.

Bir kümenin her zaman kendisinin alt kümesi olarak kabul edildiğini unutmayın.

Örneğin,

set([1, 2]).issubset([1, 2, 3])  # True
set([1, 2]).issubset([1, 2])     # True
set([1, 2]).issubset([2, 3])     # False

Parametreler

Parametre Açıklama
other required
Bir küme, karma oluşturmaya uygun öğe dizisi veya sözlük.

issuperset

bool set.issuperset(other)

Bu kümenin başka bir kümenin üst kümesi olması durumunda doğru değerini döndürür.

Bir kümenin her zaman kendisinin bir üst kümesi olarak kabul edildiğini unutmayın.

Örneğin,

set([1, 2, 3]).issuperset([1, 2])     # True
set([1, 2, 3]).issuperset([1, 2, 3])  # True
set([1, 2, 3]).issuperset([2, 3, 4])  # False

Parametreler

Parametre Açıklama
other required
Bir küme, karma oluşturmaya uygun öğe dizisi veya sözlük.

pop

unknown set.pop()

Kümenin ilk öğesini kaldırıp döndürür (öğelerin kümeye ilk eklendikleri sıra olan iterasyon sırasına göre).

Küme boşsa başarısız olur.

Örneğin,

s = set([3, 1, 2])
s.pop()  # 3; s == set([1, 2])
s.pop()  # 1; s == set([2])
s.pop()  # 2; s == set()
s.pop()  # error: empty set

remove

None set.remove(element)

Grupta bulunması gereken bir öğeyi gruptan kaldırır.

Öğe grupta yoksa remove başarısız olur. Mevcut olmayan bir öğeyi kaldırma girişiminde başarısız olmak istemiyorsanız bunun yerine discard öğesini kullanın. Bir kümeden birden fazla öğe kaldırmanız gerekiyorsa difference_update veya -= artırılmış atama işlemine bakın.

Parametreler

Parametre Açıklama
element required
Kaldırılacağı öğe. Kümenin bir öğesi (ve karma oluşturmaya uygun) olmalıdır.

symmetric_difference

set set.symmetric_difference(other)

Bu kümenin başka bir küme, sıra veya sözlükle simetrik farkını içeren yeni ve değiştirilebilir bir küme döndürür.

s ve t kümelerse s.symmetric_difference(t), s ^ t ile eşdeğerdir. Ancak ^ işleminin her iki tarafının da küme olmasını gerektirdiğini, symmetric_difference yönteminin ise bir sıra veya sözlük de kabul ettiğini unutmayın.

Örneğin,

set([1, 2]).symmetric_difference([2, 3])  # set([1, 3])

Parametreler

Parametre Açıklama
other required
Bir küme, karma oluşturmaya uygun öğe dizisi veya sözlük.

symmetric_difference_update

None set.symmetric_difference_update(other)

Bu kümenin başka bir küme, sıra veya sözlükle simetrik farkını içeren yeni ve değiştirilebilir bir küme döndürür.

s ve t küme ise s.symmetric_difference_update(t), "s ^= t; however, note that the ^=" artırılmış atama işlemine eşdeğerdir. Bu işlemde her iki tarafın da küme olması gerekir. symmetric_difference_update yöntemi ise bir dizi veya sözlük de kabul eder.

Örneğin,

s = set([1, 2])
s.symmetric_difference_update([2, 3])  # None; s == set([1, 3])

Parametreler

Parametre Açıklama
other required
Bir küme, karma oluşturmaya uygun öğe dizisi veya sözlük.

Union

set set.union(*others)

Bu kümenin diğerleriyle birleşimini içeren yeni ve değiştirilebilir bir küme döndürür.

s ve t kümelerse s.union(t), s | t ile eşdeğerdir. Ancak | işleminin her iki tarafın da küme olmasını gerektirdiğini, union yönteminin ise dizileri ve sözlükleri de kabul ettiğini unutmayın.

union işlevinin bağımsız değişken olmadan çağrılmasına izin verilir. Bu işlev, kümenin bir kopyasını döndürür.

Örneğin,

set([1, 2]).union([2, 3])                    # set([1, 2, 3])
set([1, 2]).union([2, 3], {3: "a", 4: "b"})  # set([1, 2, 3, 4])

Parametreler

Parametre Açıklama
others required
Kümeler, karma oluşturmaya uygun öğe dizileri veya sözlükler.

update

None set.update(*others)

Diğer gruplarda bulunan öğeleri bu gruba ekler.

Örneğin,

s = set()
s.update([1, 2])          # None; s is set([1, 2])
s.update([2, 3], [3, 4])  # None; s is set([1, 2, 3, 4])

s ve t kümelerse s.update(t), s |= t ile eşdeğerdir. Ancak |= genişletilmiş atama işleminde her iki tarafın da küme olması gerekirken update yöntemi dizileri ve sözlükleri de kabul eder.

update işlevinin bağımsız değişken olmadan çağrılmasına izin verilir. Bu durumda, küme değişmez.

Parametreler

Parametre Açıklama
others required
Kümeler, karma oluşturmaya uygun öğe dizileri veya sözlükler.