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
- ekle
- clear
- fark
- difference_update
- discard
- intersection
- intersection_update
- isdisjoint
- issubset
- issuperset
- pop
- kaldır
- symmetric_difference
- symmetric_difference_update
- union
- güncelle
add
None
set.add(element)
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()
fark
set set.difference(*others)
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)
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)
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)
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)
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)
Ö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)
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)
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ü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)
Öğ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)
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)
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)
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)
Ö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. |