Darsliklar Python Ma’lumot to’plami. Set

Python Python Ma’lumot to’plami. Set

Ma’lumot to’plamlari mavzusini Set (to’plam) bilan davom ettiramiz. Set matematikadagi to’plam tushunchasiga eng yaqin turdir va u bir muhim vazifani mukammal bajaradi — takrorlanuvchi qiymatlarni yo’q qilish.

Set (to’plam)tartibsiz, takrorlanmaydigan elementlardan tashkil topgan to’plam. U jingalak qavs {} ichida yoziladi. Har bir element faqat bir marta saqlanadi va elementlar ma’lum tartibga ega emas.

Set yaratish va takrorning yo’qolishi

Set’ning eng ko’zga tashlanadigan xususiyati — takroriy qiymatlarni avtomatik olib tashlashi:

sonlar = {1, 2, 2, 3, 3, 3, 4}
print(sonlar)
print(len(sonlar))
{1, 2, 3, 4}

Takrorlar yo’qoldi. Aynan shu sabab agar sizda takroriy elementli ro’yxat bo’lsa va uni tozalash kerak bo’lsa, uni Set’ga aylantirish eng oson yechim:

mahsulotlar = ["telefon", "noutbuk", "telefon", "smart soat", "noutbuk"]
noyob = set(mahsulotlar)
print(noyob)
print(len(noyob))
{'telefon', 'noutbuk', 'smart soat'}
3

Element qo’shish va o’chirish

Set o’zgaruvchan — unga element qo’shish (add) va olib tashlash (discard) mumkin:

tillar = {"python", "php"}
tillar.add("javascript")
tillar.discard("php")
print(tillar)
{'python', 'javascript'}

add yangi elementni qo’shadi (agar allaqachon bo’lsa, e’tiborsiz qoldiradi), discard esa elementni xavfsiz o’chiradi (bo’lmasa ham xato bermaydi).

To’plam amallari

Set’ning haqiqiy kuchi matematik to’plam amallarida — kesishma, birlashma, ayirma. Ularni jadvalda ko’ramiz:

Amal Operator Ma’nosi
Birlashma | ikkalasidagi barcha elementlar
Kesishma & ikkalasida ham bor elementlar
Ayirma - birinchida bor, ikkinchida yo’q
Simmetrik ayirma ^ faqat bittasida bor elementlar

Amalda:

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a | b)   # birlashma
print(a & b)   # kesishma
print(a - b)   # ayirma
{1, 2, 3, 4, 5, 6}
{3, 4}
{1, 2}

Bu amallar real hayotda juda foydali. Masalan, ikki foydalanuvchining umumiy qiziqishlarini topish — bu kesishma; ikki blogpost teglarining birlashmasini olish — bu birlashma.

Set qachon to’g’ri tanlov?

Set’ni List bilan solishtirganda uch ustunligi bor: takrorni yo’q qiladi, element bor-yo’qligini tekshirish (in) juda tez, va to’plam amallarini qo’llab-quvvatlaydi:

katta_royxat = set(range(1000000))
print(999999 in katta_royxat)
True

Millionlab elementli Set’da in tekshiruvi deyarli bir zumda bajariladi — List’da bu ancha sekin bo’lardi. Faqat bitta cheklov: Set tartibsiz, shuning uchun indeks bo’yicha (set[0]) murojaat qilib bo’lmaydi.

Xulosa

Bu darsda Set — takrorlanmas, tartibsiz to’plam bilan tanishdik, takrorlarni tozalashni, add/discard metodlarini va birlashma/kesishma/ayirma amallarini o’rgandik. Set noyob qiymatlar va tez tekshiruv uchun ideal. Keyingi darsda shart amallariga — If … Else’ga o’tamiz.