مرکزی مواد پر جائیں
ماڈیول 3 · سبق 4 از 4کورس میں 12/36~10 min
ماڈیول اسباق (4/4)

سیٹ کرتا ہے۔

ایک سیٹ منفرد، غیر ترتیب شدہ عناصر کا مجموعہ ہے۔ تین سپر پاور:

  1. خودکار ڈپلیکیشن: ایک ہی عنصر کو دو بار شامل کرنے کا کوئی اثر نہیں ہوتا ہے۔
  2. O(1) ممبرشپ ٹیسٹ: x in s لاکھوں کے ساتھ بھی انتہائی تیز ہے عناصر کی (یہ ہیش پر مبنی ہے، جیسے ڈکٹ)۔
  3. سیٹ آپریشن: یونین، انٹرسیکشن، فرق، ہم آہنگی فرق۔

ایک سیٹ بنانا

Python
vuoto = set()           # ATTENZIONE: {} è un dict vuoto, non un set!
numeri = {1, 2, 3}
da_lista = set([1, 1, 2, 3, 3, 3])   # {1, 2, 3}

صرف منحنی خطوط وحدانی {} ایک خالی لغت بنائیں، سیٹ نہیں: خالی سیٹ کے لیے آپ کو set() کی ضرورت ہے۔

ایک سیٹ میں ترمیم کرنا

Python
s = {1, 2, 3}
s.add(4)         # {1, 2, 3, 4}
s.add(1)         # nessun effetto (già presente)
s.discard(99)    # rimuove se presente, silenzioso altrimenti
s.remove(2)      # rimuove o solleva KeyError

آپریشنز مرتب کریں۔

Python
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}

a | b    # {1, 2, 3, 4, 5, 6}     unione
a & b    # {3, 4}                  intersezione
a - b    # {1, 2}                  differenza (in a ma non in b)
a ^ b    # {1, 2, 5, 6}            differenza simmetrica (xor)

طریقہ کے فارم بھی ہیں (a.union(b), a.intersection(b), …) جس میں اس کے علاوہ کسی بھی قابل تکرار کو قبول کریں، نہ صرف سیٹ۔

ممبرشپ ٹیسٹ

Python
parole = {"ciao", "mondo", "python"}
"ciao" in parole       # True   O(1)
"java" not in parole   # True

موازنہ کے لیے: in کے ساتھ list کے اندر تلاش کرنا O(n) ہے اور لمبا ہے۔ فہرست میں یہ بہت سست ہے۔

منجمد سیٹ: ناقابل تغیر ورژن

frozenset({1, 2, 3}) ہیش ایبل ورژن ہے: یہ ڈکٹ کلید یا ایک دوسرے سیٹ کا عنصر۔

آپریشنز اور کارکردگی کا تعین کریں۔

سیٹوں کو ہیش ٹیبل کے طور پر لاگو کیا جاتا ہے، جو ممبرشپ ٹیسٹنگ (x in my_set) کو انتہائی تیز بناتا ہے: یہ مستقل وقت میں چلتا ہے O(1)، ان فہرستوں کے برعکس جہاں تلاش میں لکیری وقت لگتا ہے O(n)۔ مزید برآں، وہ الجبری کارروائیوں کی حمایت کرتے ہیں جیسے یونین (|)، انٹرسیکشن (&)، اور فرق (-)۔

اسے آزمائیں

ورزش#python.m3.l4.e1
کوششیں: 0لوڈ ہو رہا ہے…

فہرست `نمز = [1, 2, 2, 3, 3, 3, 4]` کو دیکھتے ہوئے، منفرد اقدار (کسی بھی ترتیب میں) کے ساتھ `unique_items` بنائیں اور پھر len(unique_items) کے بطور `count` کی گنتی کریں۔ 'گنتی' کا اندازہ لگائیں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

set(nums) ڈپلیکیٹ کو ہٹاتا ہے۔

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش کا جائزہ لیں۔

ورزش#python.m3.l4.e2
کوششیں: 0لوڈ ہو رہا ہے…

`a = {1, 2, 3, 4}` اور `b = {3, 4, 5, 6}` کو دیکھتے ہوئے، مقطع کو `common_items` میں اور a-b کا فرق `only_a` میں شمار کریں۔ ٹوپل کا اندازہ کریں `(عام_آئٹمز، صرف_ا)'۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

اور چوراہا، - فرق۔

3 کوششوں کے بعد حل دستیاب ہے۔

اضافی چیلنج

ورزش#python.m3.l4.e3
کوششیں: 0لوڈ ہو رہا ہے…

Given two sets `set_a = {1, 2, 3}` and `set_b = {2, 3, 4}`, calculate the mathematical intersection of the two sets (their common elements). Store the resulting set in `common_elements` and evaluate it.

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

آپ & آپریٹر یا set_a.intersection(set_b) طریقہ استعمال کر سکتے ہیں۔

3 کوششوں کے بعد حل دستیاب ہے۔