Python nyedhiyakake jinis data sing dibangun ing, set, sing nangani set.
Set jinis minangka kumpulan unsur non-duplikat (elemen sing ora padha karo nilai, unsur unik) lan bisa nindakake operasi set kayata union set, product set, lan difference set.
Ing bagean iki, operasi dhasar ing operasi set-jinis pesawat diterangake karo kode sampel.
- Nggawe obyek sing disetel:
{}
,set()
- nyetel notasi inklusi
- Jumlah unsur ing set:
len()
- Nambahake Unsur menyang Set:
add()
- Mbusak unsur saka pesawat:
discard()
,remove()
,pop()
,clear()
- Wasset (merger, union):| operator,
union()
- Set produk (bagian umum, persimpangan, persimpangan):& amp; operator,
intersection()
- nglengkapi relatif:-operator,
difference()
- set prabédan simetri:^ operator,
symmetric_difference()
- subset utawa ora:<= operator,
issubset()
- Set ndhuwur utawa ora:>= operator,
issuperset()
- Nemtokake apa padha dadi prima utawa ora:
isdisjoint()
Jinis set minangka jinis sing bisa diganti sing bisa nambah lan mbusak unsur, lan uga ana jinis set beku sing operasi set sing padha lan metode liyane minangka jinis set nanging ora bisa diganti (ora bisa diowahi kanthi nambah, mbusak, utawa ngowahi unsur. ).
- Nggawe obyek set::{},set()
- nyetel notasi inklusi
- Jumlah unsur ing set:len()
- Nambahake Unsur menyang Set:add()
- Mbusak unsur saka pesawat:discard(),remove(),pop(),clear()
- Wasset (merger, union):| operator,union()
- Set produk (bagian umum, persimpangan, persimpangan):& amp; operator,intersection()
- nglengkapi relatif:-operator,difference()
- set prabédan simetri:^ operator,symmetric_difference()
- subset utawa ora:<= operator,issubset()
- Set ndhuwur utawa ora:>= operator,issuperset()
- Nemtokake apa padha dadi prima utawa ora:isdisjoint()
Nggawe obyek set::{},set()
Digawe dening kurung gelombang {}
Obyek saka jinis set bisa digawe kanthi nyakup unsur ing braces {}.
Yen ana nilai duplikat, ora digatekake lan mung nilai unik sing tetep dadi unsur.
s = {1, 2, 2, 3, 1, 4}
print(s)
print(type(s))
# {1, 2, 3, 4}
# <class 'set'>
Bisa uga ana macem-macem jinis minangka unsur. Nanging, obyek sing bisa dianyari kayata jinis dhaptar ora bisa didaftar. Tuples diijini.
Uga, amarga jinis set ora diurutake, urutan sing digawe ora disimpen.
s = {1.23, 'abc', (0, 1, 2), 'abc'}
print(s)
# {(0, 1, 2), 1.23, 'abc'}
# s = {[0, 1, 2]}
# TypeError: unhashable type: 'list'
Jinis sing beda-beda, kayata int lan float, dianggep duplikat yen nilaine padha.
s = {100, 100.0}
print(s)
# {100}
Wiwit brace kosong {} dianggep minangka jinis kamus, obyek jinis set kosong (set kosong) bisa digawe nggunakake konstruktor sing diterangake ing sabanjure.
s = {}
print(s)
print(type(s))
# {}
# <class 'dict'>
Digawe dening set konstruktor ()
Obyek saka jinis pesawat uga bisa digawe karo konstruktor pesawat ().
Nemtokake obyek sing bisa diiter kayata dhaptar utawa tuple minangka argumen ngasilake obyek set sing unsur mung nilai unik, kanthi unsur duplikat ora kalebu.
l = [1, 2, 2, 3, 1, 4]
print(l)
print(type(l))
# [1, 2, 2, 3, 1, 4]
# <class 'list'>
s_l = set(l)
print(s_l)
print(type(s_l))
# {1, 2, 3, 4}
# <class 'set'>
Jinis frozenset immutable digawe karo konstruktor frozenset ().
fs_l = frozenset(l)
print(fs_l)
print(type(fs_l))
# frozenset({1, 2, 3, 4})
# <class 'frozenset'>
Yen argumen diilangi, obyek jinis set kosong (set kosong) digawe.
s = set()
print(s)
print(type(s))
# set()
# <class 'set'>
unsur duplikat bisa dibusak saka dhaftar utawa tuple nggunakake pesawat (), nanging urutan dhaftar asli ora wadi.
Kanggo ngowahi jinis pesawat menyang dhaftar utawa tuple, nggunakake dhaftar (), tuple ().
l = [2, 2, 3, 1, 3, 4]
l_unique = list(set(l))
print(l_unique)
# [1, 2, 3, 4]
Waca artikel ing ngisor iki kanggo informasi babagan mbusak unsur duplikat nalika njaga urutan, ngekstrak mung unsur duplikat, lan ngolah unsur duplikat ing array rong dimensi (dhaptar dhaptar).
nyetel notasi inklusi
Saliyane pangerten dhaptar, ana pangerten sing disetel. Ganti wae tanda kurung siku [] nganggo kurung {} ing daftar pangerten.
s = {i**2 for i in range(5)}
print(s)
# {0, 1, 4, 9, 16}
Deleng artikel ing ngisor iki kanggo informasi luwih lengkap babagan notasi pangerten dhaptar.
Jumlah unsur ing set:len()
Jumlah unsur ing pesawat bisa dipikolehi karo dibangun ing fungsi len ().
s = {1, 2, 2, 3, 1, 4}
print(s)
print(len(s))
# {1, 2, 3, 4}
# 4
Yen sampeyan pengin ngetung jumlah unsur ing saben dhaptar sing nduweni unsur kanthi nilai duplikat, dsb., deleng artikel ing ngisor iki.
Nambahake Unsur menyang Set:add()
Kanggo nambah unsur kanggo pesawat, nggunakake add () cara.
s = {0, 1, 2}
s.add(3)
print(s)
# {0, 1, 2, 3}
Mbusak unsur saka pesawat:discard(),remove(),pop(),clear()
Kanggo mbusak unsur saka pesawat, nggunakake discard (), mbusak (), pop (), lan cetha () cara.
Metode discard () mbusak unsur sing ditemtokake ing argumen kasebut. Yen nilai sing ora ana ing set kasebut ditemtokake, ora ana sing ditindakake.
s = {0, 1, 2}
s.discard(1)
print(s)
# {0, 2}
s = {0, 1, 2}
s.discard(10)
print(s)
# {0, 1, 2}
Cara mbusak () uga mbusak unsur sing ditemtokake ing argumen, nanging kesalahan KeyError bali yen nilai sing ora ana ing set kasebut.
s = {0, 1, 2}
s.remove(1)
print(s)
# {0, 2}
# s = {0, 1, 2}
# s.remove(10)
# KeyError: 10
Metode pop () mbusak unsur saka pesawat lan ngasilake nilai-nilai kasebut. Ora bisa milih nilai sing bakal dibusak. Set kosong bakal nyebabake kesalahan KeyError.
s = {2, 1, 0}
v = s.pop()
print(s)
print(v)
# {1, 2}
# 0
s = {2, 1, 0}
print(s.pop())
# 0
print(s.pop())
# 1
print(s.pop())
# 2
# print(s.pop())
# KeyError: 'pop from an empty set'
Cara sing cetha () mbusak kabeh unsur lan nggawe set kosong.
s = {0, 1, 2}
s.clear()
print(s)
# set()
Wasset (merger, union):| operator,union()
Set union (merger, union) bisa dipikolehi nganggo | operator utawa cara uni ().
s1 = {0, 1, 2}
s2 = {1, 2, 3}
s3 = {2, 3, 4}
s_union = s1 | s2
print(s_union)
# {0, 1, 2, 3}
s_union = s1.union(s2)
print(s_union)
# {0, 1, 2, 3}
Sawetara argumen bisa ditemtokake kanggo metode. Saliyane jinis pesawat, dhaptar lan tuples sing bisa diowahi kanggo jinis pesawat dening pesawat () uga bisa kasebut minangka bantahan. Padha ditrapake kanggo operator lan cara sakteruse.
s_union = s1.union(s2, s3)
print(s_union)
# {0, 1, 2, 3, 4}
s_union = s1.union(s2, [5, 6, 5, 7, 5])
print(s_union)
# {0, 1, 2, 3, 5, 6, 7}
Set produk (bagian umum, persimpangan, persimpangan):& amp; operator,intersection()
set produk (bagian umum, prapatan, lan prapatan) bisa dipikolehi karo & amp; operator utawa metode persimpangan ().
s_intersection = s1 & s2
print(s_intersection)
# {1, 2}
s_intersection = s1.intersection(s2)
print(s_intersection)
# {1, 2}
s_intersection = s1.intersection(s2, s3)
print(s_intersection)
# {2}
nglengkapi relatif:-operator,difference()
Prabédan pesawat bisa dipikolehi karo – operator utawa beda () cara.
s_difference = s1 - s2
print(s_difference)
# {0}
s_difference = s1.difference(s2)
print(s_difference)
# {0}
s_difference = s1.difference(s2, s3)
print(s_difference)
# {0}
set prabédan simetri:^ operator,symmetric_difference()
Setel prabédan simetris (set unsur sing ana mung siji saka loro) bisa dipikolehi karo operator ^ utawa symmetric_difference ().
Setara karo disjunksi eksklusif (XOR) ing operasi logis.
s_symmetric_difference = s1 ^ s2
print(s_symmetric_difference)
# {0, 3}
s_symmetric_difference = s1.symmetric_difference(s2)
print(s_symmetric_difference)
# {0, 3}
subset utawa ora:<= operator,issubset()
Kanggo nemtokake manawa pesawat minangka subset saka pesawat liyane, gunakake operator & lt; = utawa metode issubset ().
s1 = {0, 1}
s2 = {0, 1, 2, 3}
print(s1 <= s2)
# True
print(s1.issubset(s2))
# True
Operator & lt; = lan metode issubset () ngasilake bener kanggo set sing padha.
Kanggo nemtokake manawa subset bener, gunakake operator <=, sing ngasilake palsu kanggo set sing padha.
print(s1 <= s1)
# True
print(s1.issubset(s1))
# True
print(s1 < s1)
# False
Set ndhuwur utawa ora:>= operator,issuperset()
Kanggo nemtokake yen siji pesawat minangka superset liyane, gunakake operator & gt; = utawa issuperset ().
s1 = {0, 1}
s2 = {0, 1, 2, 3}
print(s2 >= s1)
# True
print(s2.issuperset(s1))
# True
Operator & gt; = lan metode issuperset () ngasilake bener kanggo set sing padha.
Kanggo nemtokake manawa superset bener, gunakake operator & gt;=, sing ngasilake palsu kanggo set sing padha.
print(s1 >= s1)
# True
print(s1.issuperset(s1))
# True
print(s1 > s1)
# False
Nemtokake apa padha dadi prima utawa ora:isdisjoint()
Kanggo nemtokake yen loro set prima kanggo saben liyane, nggunakake cara isdisjoint ().
s1 = {0, 1}
s2 = {1, 2}
s3 = {2, 3}
print(s1.isdisjoint(s2))
# False
print(s1.isdisjoint(s3))
# True