Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

Set Python

Set Python

Dalam tutorial ini, Anda akan mempelajari segala sesuatu tentang set Python; bagaimana mereka dibuat, menambahkan atau menghapus elemen darinya, dan semua operasi yang dilakukan pada set dengan Python.

Video:Diset dengan Python

Set adalah kumpulan item yang tidak berurutan. Setiap elemen yang ditetapkan adalah unik (tidak ada duplikat) dan tidak dapat diubah (tidak dapat diubah).

Namun, satu set itu sendiri bisa berubah. Kami dapat menambahkan atau menghapus item darinya.

Himpunan juga dapat digunakan untuk melakukan operasi himpunan matematika seperti penyatuan, perpotongan, perbedaan simetris, dll.


Membuat Kumpulan Python

Himpunan dibuat dengan menempatkan semua item (elemen) di dalam kurung kurawal {} , dipisahkan dengan koma, atau dengan menggunakan set() . bawaan fungsi.

Itu dapat memiliki sejumlah item dan mereka mungkin memiliki tipe yang berbeda (integer, float, tuple, string, dll.). Tetapi satu set tidak dapat memiliki elemen yang dapat diubah seperti daftar, set, atau kamus sebagai elemennya.

# Different types of sets in Python
# set of integers
my_set = {1, 2, 3}
print(my_set)

# set of mixed datatypes
my_set = {1.0, "Hello", (1, 2, 3)}
print(my_set)

Keluaran

{1, 2, 3}
{1.0, (1, 2, 3), 'Hello'}

Coba juga contoh berikut.

# set cannot have duplicates
# Output: {1, 2, 3, 4}
my_set = {1, 2, 3, 4, 3, 2}
print(my_set)

# we can make set from a list
# Output: {1, 2, 3}
my_set = set([1, 2, 3, 2])
print(my_set)

# set cannot have mutable items
# here [3, 4] is a mutable list
# this will cause an error.

my_set = {1, 2, [3, 4]}

Keluaran

{1, 2, 3, 4}
{1, 2, 3}
Traceback (most recent call last):
  File "<string>", line 15, in <module>
    my_set = {1, 2, [3, 4]}
TypeError: unhashable type: 'list'

Membuat himpunan kosong agak rumit.

Tanda kurung kurawal kosong {} akan membuat kamus kosong dengan Python. Untuk membuat himpunan tanpa elemen, kita menggunakan set() fungsi tanpa argumen.

# Distinguish set and dictionary while creating empty set

# initialize a with {}
a = {}

# check data type of a
print(type(a))

# initialize a with set()
a = set()

# check data type of a
print(type(a))

Keluaran

<class 'dict'>
<class 'set'>

Memodifikasi satu set dengan Python

Set bisa berubah. Namun, karena tidak berurutan, pengindeksan tidak ada artinya.

Kami tidak dapat mengakses atau mengubah elemen set menggunakan pengindeksan atau pengirisan. Jenis data yang disetel tidak mendukungnya.

Kita dapat menambahkan satu elemen menggunakan add() metode, dan beberapa elemen menggunakan update() metode. update() metode dapat mengambil tupel, daftar, string atau set lain sebagai argumennya. Dalam semua kasus, duplikat dihindari.

# initialize my_set
my_set = {1, 3}
print(my_set)

# my_set[0]
# if you uncomment the above line
# you will get an error
# TypeError: 'set' object does not support indexing

# add an element
# Output: {1, 2, 3}
my_set.add(2)
print(my_set)

# add multiple elements
# Output: {1, 2, 3, 4}
my_set.update([2, 3, 4])
print(my_set)

# add list and set
# Output: {1, 2, 3, 4, 5, 6, 8}
my_set.update([4, 5], {1, 6, 8})
print(my_set)

Keluaran

{1, 3}
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 8}

Menghapus elemen dari kumpulan

Item tertentu dapat dihapus dari set menggunakan metode discard() dan remove() .

Satu-satunya perbedaan antara keduanya adalah bahwa discard() fungsi meninggalkan set tidak berubah jika elemen tidak ada di set. Di sisi lain, remove() fungsi akan memunculkan kesalahan dalam kondisi seperti itu (jika elemen tidak ada dalam himpunan).

Contoh berikut akan menggambarkan hal ini.

# Difference between discard() and remove()

# initialize my_set
my_set = {1, 3, 4, 5, 6}
print(my_set)

# discard an element
# Output: {1, 3, 5, 6}
my_set.discard(4)
print(my_set)

# remove an element
# Output: {1, 3, 5}
my_set.remove(6)
print(my_set)

# discard an element
# not present in my_set
# Output: {1, 3, 5}
my_set.discard(2)
print(my_set)

# remove an element
# not present in my_set
# you will get an error.
# Output: KeyError

my_set.remove(2)

Keluaran

{1, 3, 4, 5, 6}
{1, 3, 5, 6}
{1, 3, 5}
{1, 3, 5}
Traceback (most recent call last):
  File "<string>", line 28, in <module>
KeyError: 2

Demikian pula, kita dapat menghapus dan mengembalikan item menggunakan pop() metode.

Karena set adalah tipe data yang tidak berurutan, tidak ada cara untuk menentukan item mana yang akan muncul. Ini benar-benar sewenang-wenang.

Kami juga dapat menghapus semua item dari satu set menggunakan clear() metode.

# initialize my_set
# Output: set of unique elements
my_set = set("HelloWorld")
print(my_set)

# pop an element
# Output: random element
print(my_set.pop())

# pop another element
my_set.pop()
print(my_set)

# clear my_set
# Output: set()
my_set.clear()
print(my_set)

print(my_set)

Keluaran

{'H', 'l', 'r', 'W', 'o', 'd', 'e'}
H
{'r', 'W', 'o', 'd', 'e'}
set()

Operasi Kumpulan Python

Himpunan dapat digunakan untuk melakukan operasi himpunan matematis seperti serikat, persimpangan, perbedaan dan perbedaan simetris. Kita dapat melakukannya dengan operator atau metode.

Mari kita perhatikan dua himpunan berikut untuk operasi berikut.

>>> A = {1, 2, 3, 4, 5}
>>> B = {4, 5, 6, 7, 8}

Setel Serikat

Persatuan A dan B adalah himpunan semua elemen dari kedua himpunan.

Penyatuan dilakukan menggunakan | operator. Hal yang sama dapat dilakukan dengan menggunakan union() metode.

# Set union method
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use | operator
# Output: {1, 2, 3, 4, 5, 6, 7, 8}
print(A | B)

Keluaran

{1, 2, 3, 4, 5, 6, 7, 8}

Coba contoh berikut pada shell Python.

# use union function
>>> A.union(B)
{1, 2, 3, 4, 5, 6, 7, 8}

# use union function on B
>>> B.union(A)
{1, 2, 3, 4, 5, 6, 7, 8}

Setel Persimpangan

Persimpangan A dan B adalah himpunan elemen yang sama di kedua himpunan.

Persimpangan dilakukan dengan menggunakan & operator. Hal yang sama dapat dilakukan dengan menggunakan intersection() metode.

# Intersection of sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use & operator
# Output: {4, 5}
print(A & B)

Keluaran

{4, 5}

Coba contoh berikut pada shell Python.

# use intersection function on A
>>> A.intersection(B)
{4, 5}

# use intersection function on B
>>> B.intersection(A)
{4, 5}

Setel Selisih

Selisih himpunan B dari set A (A - B ) adalah sekumpulan elemen yang hanya ada di A tapi tidak di B . Demikian pula, B - A adalah sekumpulan elemen di B tapi tidak di A .

Perbedaan dilakukan dengan menggunakan - operator. Hal yang sama dapat dilakukan dengan menggunakan difference() metode.

# Difference of two sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use - operator on A
# Output: {1, 2, 3}
print(A - B)

Keluaran

{1, 2, 3}

Coba contoh berikut pada shell Python.

# use difference function on A
>>> A.difference(B)
{1, 2, 3}

# use - operator on B
>>> B - A
{8, 6, 7}

# use difference function on B
>>> B.difference(A)
{8, 6, 7}

Tetapkan Selisih Simetris

Selisih Simetris dari A dan B adalah sekumpulan elemen dalam A dan B tetapi tidak di keduanya (tidak termasuk persimpangan).

Perbedaan simetris dilakukan dengan menggunakan ^ operator. Hal yang sama dapat dilakukan dengan menggunakan metode symmetric_difference() .

# Symmetric difference of two sets
# initialize A and B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# use ^ operator
# Output: {1, 2, 3, 6, 7, 8}
print(A ^ B)

Keluaran

{1, 2, 3, 6, 7, 8}

Coba contoh berikut pada shell Python.

# use symmetric_difference function on A
>>> A.symmetric_difference(B)
{1, 2, 3, 6, 7, 8}

# use symmetric_difference function on B
>>> B.symmetric_difference(A)
{1, 2, 3, 6, 7, 8}

Metode Kumpulan Python Lainnya

Ada banyak metode yang ditetapkan, beberapa di antaranya telah kami gunakan di atas. Berikut adalah daftar semua metode yang tersedia dengan objek yang ditetapkan:

Metode Deskripsi
tambahkan() Menambahkan elemen ke set
jelas() Menghapus semua elemen dari set
salin() Mengembalikan salinan set
perbedaan() Mengembalikan selisih dua atau lebih himpunan sebagai himpunan baru
difference_update() Menghapus semua elemen set lain dari set ini
buang() Menghapus elemen dari set jika itu adalah anggota. (Jangan lakukan apa pun jika elemen tidak disetel)
persimpangan() Mengembalikan perpotongan dua himpunan sebagai himpunan baru
intersection_update() Memperbarui himpunan dengan perpotongan dirinya dan himpunan lainnya
isdisjoint() Mengembalikan True jika dua himpunan memiliki perpotongan nol
issubset() Mengembalikan True jika set lain berisi set ini
issuperset() Mengembalikan True jika set ini berisi set lain
pop() Menghapus dan mengembalikan elemen set arbitrer. Menaikkan KeyError jika set kosong
hapus() Menghapus elemen dari set. Jika elemen bukan anggota, memunculkan KeyError
symmetric_difference() Mengembalikan selisih simetris dua himpunan sebagai himpunan baru
symmetric_difference_update() Memperbarui satu set dengan perbedaan simetris dari dirinya sendiri dan yang lain
serikat() Mengembalikan gabungan himpunan dalam himpunan baru
perbarui() Memperbarui himpunan dengan penyatuan dirinya dan orang lain

Operasi Set Lainnya

Tetapkan Uji Keanggotaan

Kami dapat menguji apakah suatu item ada dalam satu set atau tidak, menggunakan in kata kunci.

# in keyword in a set
# initialize my_set
my_set = set("apple")

# check if 'a' is present
# Output: True
print('a' in my_set)

# check if 'p' is present
# Output: False
print('p' not in my_set)

Keluaran

True
False

Iterasi Melalui Set

Kami dapat mengulangi setiap item dalam satu set menggunakan for lingkaran.

>>> for letter in set("apple"):
...     print(letter)
...    
a
p
e
l

Fungsi Bawaan dengan Set

Fungsi bawaan seperti all() , any() , enumerate() , len() , max() , min() , sorted() , sum() dll. biasanya digunakan dengan set untuk melakukan tugas yang berbeda.

Fungsi Deskripsi
semua() Mengembalikan True jika semua elemen himpunan benar (atau jika himpunan kosong).
apa saja() Mengembalikan True jika salah satu elemen dari himpunan benar. Jika set kosong, kembalikan False .
menghitung() Mengembalikan objek enumerate. Ini berisi indeks dan nilai untuk semua item dari himpunan sebagai pasangan.
len() Mengembalikan panjang (jumlah item) di set.
maks() Mengembalikan item terbesar dalam kumpulan.
min() Mengembalikan item terkecil dalam kumpulan.
diurutkan() Mengembalikan daftar baru yang diurutkan dari elemen dalam set (tidak mengurutkan set itu sendiri).
jumlah() Mengembalikan jumlah semua elemen dalam himpunan.

Python Frozenset

Frozenset adalah kelas baru yang memiliki karakteristik himpunan, tetapi elemennya tidak dapat diubah setelah ditetapkan. Sementara tupel adalah daftar yang tidak dapat diubah, kumpulan beku adalah kumpulan yang tidak dapat diubah.

Kumpulan yang dapat diubah tidak dapat di-hash, sehingga tidak dapat digunakan sebagai kunci kamus. Di sisi lain, frozenset dapat di-hash dan dapat digunakan sebagai kunci kamus.

Frozensets dapat dibuat menggunakan fungsi frozenset().

Tipe data ini mendukung metode seperti copy() , difference() , intersection() , isdisjoint() , issubset() , issuperset() , symmetric_difference() dan union() . Karena tidak dapat diubah, ia tidak memiliki metode yang menambah atau menghapus elemen.

# Frozensets
# initialize A and B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

Coba contoh ini di Python shell.

>>> A.isdisjoint(B)
False
>>> A.difference(B)
frozenset({1, 2})
>>> A | B
frozenset({1, 2, 3, 4, 5, 6})
>>> A.add(3)
...
AttributeError: 'frozenset' object has no attribute 'add'

Python

  1. Tipe Data Python
  2. Operator Python
  3. Pernyataan lulus python
  4. Argumen Fungsi Python
  5. Kamus Python
  6. Python Iterator
  7. Penutupan Python
  8. Tanggal waktu Python
  9. Python - Ikhtisar
  10. Python - Angka