ayarla

Sorun bildir Kaynağı görüntüle Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

Yerleşik küme türü. Küme, benzersiz değerlerden oluşan değiştirilebilir ve yinelenebilir bir koleksiyondur. Bu değerler, kümenin öğeleridir. Bir kümenin tür adı "set"'dir.

Kümeler, değer eklemek, kaldırmak veya değerin varlığını kontrol etmek için sabit zamanlı işlemler sağlar. Kümeler, karma tablo kullanılarak uygulandığından sözlük anahtarları gibi küme öğeleri de karma oluşturulabilir olmalıdır. Bir değer, yalnızca sözlüğün anahtarı olarak kullanılabiliyorsa kümenin öğesi olarak kullanılabilir.

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

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

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

Bir küme yinelenebilir olduğundan for döngüsünün, liste kapsamının ve yinelenebilir öğeler üzerinde çalışan çeşitli yerleşik işlevlerin işleneni olarak kullanılabilir. Uzunluğu, len() yerleşik işlevi kullanılarak alınabilir. Yineleme sırası, öğelerin kümeye ilk eklendiği 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 küme s, yalnızca t aynı öğeleri içeren bir küme ise t değerine eşittir. Yineleme 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 dizi kümeyi 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 yapılan | işlemi, iki kümenin birleşimini döndürür: orijinal kümelerden birinde veya her ikisinde de bulunan öğeleri içeren bir küme.

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

İki küme üzerinde yapılan & işlemi, iki kümenin kesişimini 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 yapılan - işlemi, iki kümenin farkını döndürür: sol taraftaki kümede bulunan ancak sağ taraftaki kümede bulunmayan öğ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 yapılan ^ işlemi, iki kümenin simetrik farkını döndürür: orijinal iki 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, sonuçta elde edilen kümenin öğeleri iki işlenen kümedeki sıralarını korur. Sol taraftan alınan tüm öğeler, yalnızca sağ tarafta bulunan öğelerden önce sıralanır.

İlgili artırılmış atamalar (|=, &=, -= ve ^=) sol taraftaki grubu 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ştirilebilir değerler gibi, bir küme de dondurulabilir. Dondurulduktan sonra, kümeyi güncellemeye yönelik tüm sonraki işlemler başarısız olur.

Üyeler

add

None set.add(element)

Kümeye bir öğe ekler.

Kümede zaten bulunan bir değere add izin verilir. Bu durumda küme değişmez.

Bir kümeye 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ğerleriyle arasındaki farkı içeren yeni bir değiştirilebilir küme döndürür.

s ve t kümelerse s.difference(t), s - t'e 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şlevini herhangi bir bağımsız değişken olmadan çağırmak mümkündür. Bu durumda, kümenin bir kopyası döndürülü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
Ayarlar, karma oluşturulabilir öğe dizileri veya sözlükler.

difference_update

None set.difference_update(*others)

Bu setteki diğer öğelerde bulunan tüm öğeleri kaldırır.

s ve t kümelerse s.difference_update(t), s -= t ile eşdeğerdir. Ancak -= artırılmış atamasının her iki tarafı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şlevini herhangi bir argüman olmadan çağırmak mümkündür. Bu durumda küme değişmez.

Ö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
Ayarlar, karma oluşturulabilir öğe dizileri veya sözlükler.

sil

None set.discard(element)

Varsa kümeden bir öğeyi kaldırır.

Kümede bulunmayan bir değere discard izin verilir. Bu durumda küme değişmez. Mevcut olmayan bir öğeyi kaldırma girişimi başarısız olsun istiyorsanız bunun yerine remove öğesini kullanın. Bir kümeden birden fazla öğe kaldırmanız gerekiyorsa difference_update veya -= artırılmış 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şturulabilir olmalıdır.

kesişim

set set.intersection(*others)

Bu kümenin diğer kümelerle kesişimini içeren yeni bir değiştirilebilir 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şlevini herhangi bir bağımsız değişken olmadan çağırmak mümkündür. Bu durumda, kümenin bir kopyası döndürülü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
Ayarlar, karma oluşturulabilir öğe dizileri veya sözlükler.

intersection_update

None set.intersection_update(*others)

Bu grupta yer alan diğer tüm öğelerde bulunmayan öğeleri kaldırır.

s ve t kümelerse s.intersection_update(t), s &= t ile eşdeğerdir. Ancak &= artırılmış 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şlevini herhangi bir argüman olmadan çağırmak mümkündür. Bu durumda küme değişmez.

Ö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
Ayarlar, karma oluşturulabilir öğe dizileri veya sözlükler.

isdisjoint

bool set.isdisjoint(other)

Bu kümenin başka bir küme ile 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 gerekli
Bir küme, karma oluşturulabilir öğelerin sırası veya bir sözlük.

issubset

bool set.issubset(other)

Bu küme başka bir kümenin alt kümesiyse doğru değerini döndürür.

Bir kümenin her zaman kendisinin bir 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 gerekli
Bir küme, karma oluşturulabilir öğelerin sırası veya bir sözlük.

issuperset

bool set.issuperset(other)

Bu küme başka bir kümenin üst kümesiyse doğru değerini döndürür.

Bir kümenin her zaman kendisinin ü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 gerekli
Bir küme, karma oluşturulabilir öğelerin sırası veya bir sözlük.

pop

unknown set.pop()

Kümenin ilk öğesini (yineleme sırasına göre, yani öğelerin kümeye ilk eklendiği sıraya göre) kaldırır ve döndürür.

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)

Kümede bulunması gereken bir öğeyi kümeden kaldırır.

Öğe sette 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 kullanın. Bir gruptan birden fazla öğe kaldırmanız gerekiyorsa difference_update veya -= artırılmış atama işlemine bakın.

Parametreler

Parametre Açıklama
element zorunlu
Kaldırılacak öğe. Kümenin bir öğesi olmalıdır (ve karma oluşturulabilir olmalıdır).

symmetric_difference

set set.symmetric_difference(other)

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

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

Örneğin,

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

Parametreler

Parametre Açıklama
other gerekli
Bir küme, karma oluşturulabilir öğelerin sırası veya bir sözlük.

symmetric_difference_update

None set.symmetric_difference_update(other)

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

s ve t kümelerse s.symmetric_difference_update(t), `s ^= t; however, note that the ^=` artırılmış atamasına eşdeğerdir. Bu atama, her iki tarafın da küme olmasını gerektirirken symmetric_difference_update yöntemi bir diziyi veya sözlüğü 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 gerekli
Bir küme, karma oluşturulabilir öğelerin sırası veya bir sözlük.

Union

set set.union(*others)

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

s ve t kümelerse s.union(t), s | t'e 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şlevini herhangi bir bağımsız değişken olmadan çağırmak mümkündür. Bu durumda, kümenin bir kopyası döndürülü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
Ayarlar, karma oluşturulabilir öğe dizileri veya sözlükler.

update

None set.update(*others)

Diğerlerinde bulunan öğeleri bu kümeye 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 |= artırılmış atamasının her iki tarafın da küme olmasını gerektirdiğini, update yönteminin ise dizileri ve sözlükleri de kabul ettiğini unutmayın.

update işlevini herhangi bir bağımsız değişken olmadan çağırmak mümkündür. Bu durumda küme değişmez.

Parametreler

Parametre Açıklama
others required
Ayarlar, karma oluşturulabilir öğe dizileri veya sözlükler.