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.
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.
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'>
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}
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()
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}
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}
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}
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}
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}
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 |
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
Kami dapat mengulangi setiap item dalam satu set menggunakan for
lingkaran.
>>> for letter in set("apple"):
... print(letter)
...
a
p
e
l
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. |
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
String Python Dalam tutorial ini Anda akan belajar membuat, memformat, memodifikasi, dan menghapus string dengan Python. Selain itu, Anda akan diperkenalkan dengan berbagai operasi dan fungsi string. Video:String Python Apa itu String di Python? String adalah urutan karakter. Karakter hanyalah s
Python strftime() Dalam artikel ini, Anda akan belajar mengonversi objek tanggal, waktu, dan waktu ke string yang setara (dengan bantuan contoh) Video:Tanggal dan Waktu dengan Python strftime() metode mengembalikan string yang mewakili tanggal dan waktu menggunakan objek tanggal, waktu atau datet
Python strptime() Dalam artikel ini, Anda akan belajar membuat objek datetime dari string (dengan bantuan contoh). Video:Tanggal dan Waktu dengan Python strptime() metode membuat objek datetime dari string yang diberikan. Catatan: Anda tidak dapat membuat datetime objek dari setiap string. Strin
Jika Anda melewatkannya:Python 2 adalah secara resmi tidak didukung mulai 1 Januari 2020 . Jika Anda masih menggunakan Python 2.7, tingkatkan sekarang . Jika Anda tidak yakin versi apa yang Anda jalankan, periksa versi Python Anda. Banyak pengelola paket telah bermigrasi ke Python 3. Beberapa mas