set

Laporkan masalah Lihat sumber Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Eksperimental. API ini bersifat eksperimental dan dapat berubah sewaktu-waktu. Jangan bergantung pada hal ini. Fitur ini dapat diaktifkan secara eksperimental dengan menetapkan --experimental_enable_starlark_set.

Jenis set yang dapat diubah bawaan. Contoh ekspresi set:

x = set()           # x is an empty set
y = set([1, 2, 3])  # y is a set with 3 elements
3 in y              # True
0 in y              # False
len(x)              # 0
len(y)              # 3

Set yang digunakan dalam konteks Boolean bernilai benar jika dan hanya jika tidak kosong.

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

Elemen set harus dapat di-hash; x dapat berupa elemen set jika dan hanya jika x dapat digunakan sebagai kunci dict.

Set itu sendiri tidak dapat di-hash; oleh karena itu, Anda tidak dapat memiliki set dengan set lain sebagai elemen.

Anda tidak dapat mengakses elemen set menurut indeks, tetapi Anda dapat melakukan iterasi pada elemen tersebut, dan Anda dapat mendapatkan daftar elemen set dalam urutan iterasi menggunakan fungsi bawaan list(). Sama seperti daftar, memutasi set saat sedang di-iterasi akan menyebabkan error. Urutan iterasi cocok dengan pesanan pemasangan iklan:

s = set([3, 1, 3])
s.add(2)
# prints 3, 1, 2
for item in s:
    print(item)
list(s)  # [3, 1, 2]

Set s sama dengan t jika dan hanya jika t adalah set yang berisi elemen yang sama, mungkin dengan urutan iterasi yang berbeda. Secara khusus, set adalah not yang sama dengan daftar elemennya.

Set tidak diurutkan; operasi <, <=, >, dan >= tidak ditentukan untuk set, dan daftar set tidak dapat diurutkan - tidak seperti di Python.

Operasi | pada dua set menampilkan gabungan dari dua set: set yang berisi elemen yang ditemukan di salah satu atau kedua set asli. Operasi | memiliki versi penetapan yang ditambahkan; s |= t menambahkan semua elemen t ke s.

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

Operasi & pada dua set menampilkan persimpangan dua set: set yang hanya berisi elemen yang ditemukan di kedua set asli. Operasi & memiliki versi penetapan yang ditambahkan; s &= t menghapus dari s semua elemen yang tidak ditemukan di t.

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

Operasi - pada dua set menampilkan perbedaan dari dua set: set yang berisi elemen yang ditemukan di set sisi kiri, tetapi bukan set sisi kanan. Operasi - memiliki versi penetapan yang ditambahkan; s -= t menghapus dari s semua elemen yang ditemukan di t.

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

Operasi ^ pada dua set menampilkan perbedaan simetris dari dua set: set yang berisi elemen yang ditemukan di salah satu dari dua set asli, tetapi tidak di keduanya. Operasi ^ memiliki versi penetapan yang ditambahkan; s ^= t menghapus dari s elemen t apa pun yang ditemukan di s dan menambahkan ke s elemen t apa pun yang tidak ditemukan di s.

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

Anggota

tambahkan

None set.add(element)

Menambahkan elemen ke set.

Parameter

Parameter Deskripsi
element required
Elemen yang akan ditambahkan.

hapus

None set.clear()

Menghapus semua elemen set.

perbedaan

set set.difference(*others)

Menampilkan set baru yang dapat diubah yang berisi perbedaan set ini dengan set lainnya.

Misalnya,

set([1, 2, 3]).intersection([1, 2], [2, 3]) == set([2])

Parameter

Parameter Deskripsi
others required
Set, urutan, atau dict.

difference_update

None set.difference_update(*others)

Menghapus elemen apa pun yang ditemukan di set lain dari set ini.

Misalnya,

x = set([1, 2, 3, 4])
x.difference_update([2, 3], [3, 4])
# x is now set([1])

Parameter

Parameter Deskripsi
others required
Set, urutan, atau dict.

hapus

None set.discard(element)

Menghapus elemen dari set jika ada.

Parameter

Parameter Deskripsi
element required
Elemen yang akan dihapus.

irisan

set set.intersection(*others)

Menampilkan set baru yang dapat diubah yang berisi persimpangan set ini dengan set lainnya.

Misalnya,

set([1, 2, 3]).intersection([1, 2], [2, 3]) == set([2])

Parameter

Parameter Deskripsi
others required
Set, urutan, atau dict.

intersection_update

None set.intersection_update(*others)

Menghapus elemen yang tidak ditemukan di semua elemen lain dari set ini.

Misalnya,

x = set([1, 2, 3, 4])
x.intersection_update([2, 3], [3, 4])
# x is now set([3])

Parameter

Parameter Deskripsi
others required
Set, urutan, atau dict.

isdisjoint

bool set.isdisjoint(other)

Menampilkan true jika set ini tidak memiliki elemen yang sama dengan set lainnya.

Misalnya,

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

Parameter

Parameter Deskripsi
other required
Kumpulan, urutan, atau dict.

issubset

bool set.issubset(other)

Menampilkan true jika kumpulan ini adalah subset dari kumpulan lain.

Misalnya,

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

Parameter

Parameter Deskripsi
other required
Kumpulan, urutan, atau dict.

issuperset

bool set.issuperset(other)

Menampilkan true jika set ini adalah superset dari set lain.

Misalnya,

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

Parameter

Parameter Deskripsi
other required
Kumpulan, urutan, atau dict.

pop

unknown set.pop()

Menghapus dan menampilkan elemen pertama dari set. Gagal jika set kosong.

hapus

None set.remove(element)

Menghapus elemen, yang harus ada dalam set, dari set. Gagal jika elemen tidak ada dalam set.

Parameter

Parameter Deskripsi
element required
Elemen yang akan dihapus.

symmetric_difference

set set.symmetric_difference(other)

Menampilkan set baru yang dapat diubah yang berisi perbedaan simetris dari set ini dengan set, urutan, atau kamus lain.

Misalnya,

set([1, 2, 3]).symmetric_difference([2, 3, 4]) == set([1, 4])

Parameter

Parameter Deskripsi
other required
Kumpulan, urutan, atau dict.

symmetric_difference_update

None set.symmetric_difference_update(other)

Menampilkan set baru yang dapat diubah yang berisi perbedaan simetris dari set ini dengan set, urutan, atau kamus lain.

Misalnya,

set([1, 2, 3]).symmetric_difference([2, 3, 4]) == set([1, 4])

Parameter

Parameter Deskripsi
other required
Kumpulan, urutan, atau dict.

Union

set set.union(*others)

Menampilkan set baru yang dapat diubah yang berisi gabungan set ini dengan set lainnya.

Misalnya,

set([1, 2]).union([2, 3, 4], [4, 5]) == set([1, 2, 3, 4, 5])

Parameter

Parameter Deskripsi
others required
Set, urutan, atau dict.

update

None set.update(*others)

Menambahkan elemen yang ditemukan di set lain ke set ini.

Misalnya,

x = set([1, 2])
x.update([2, 3], [3, 4])
# x is now set([1, 2, 3, 4])

Parameter

Parameter Deskripsi
others required
Set, urutan, atau dict.