ماڈیول اسباق (4/4)
سیٹ کرتا ہے۔
ایک سیٹ منفرد، غیر ترتیب شدہ عناصر کا مجموعہ ہے۔ تین سپر پاور:
- خودکار ڈپلیکیشن: ایک ہی عنصر کو دو بار شامل کرنے کا کوئی اثر نہیں ہوتا ہے۔
- O(1) ممبرشپ ٹیسٹ:
x in sلاکھوں کے ساتھ بھی انتہائی تیز ہے عناصر کی (یہ ہیش پر مبنی ہے، جیسے ڈکٹ)۔ - سیٹ آپریشن: یونین، انٹرسیکشن، فرق، ہم آہنگی فرق۔
ایک سیٹ بنانا
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() کی ضرورت ہے۔
ایک سیٹ میں ترمیم کرنا
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آپریشنز مرتب کریں۔
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), …) جس میں
اس کے علاوہ کسی بھی قابل تکرار کو قبول کریں، نہ صرف سیٹ۔
ممبرشپ ٹیسٹ
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)۔ مزید برآں، وہ الجبری کارروائیوں کی حمایت کرتے ہیں جیسے یونین (|)، انٹرسیکشن (&)، اور فرق (-)۔
اسے آزمائیں
فہرست `نمز = [1, 2, 2, 3, 3, 3, 4]` کو دیکھتے ہوئے، منفرد اقدار (کسی بھی ترتیب میں) کے ساتھ `unique_items` بنائیں اور پھر len(unique_items) کے بطور `count` کی گنتی کریں۔ 'گنتی' کا اندازہ لگائیں۔
اشارہ دکھائیں۔
set(nums) ڈپلیکیٹ کو ہٹاتا ہے۔
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
`a = {1, 2, 3, 4}` اور `b = {3, 4, 5, 6}` کو دیکھتے ہوئے، مقطع کو `common_items` میں اور a-b کا فرق `only_a` میں شمار کریں۔ ٹوپل کا اندازہ کریں `(عام_آئٹمز، صرف_ا)'۔
اشارہ دکھائیں۔
اور چوراہا، - فرق۔
3 کوششوں کے بعد حل دستیاب ہے۔
اضافی چیلنج
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 کوششوں کے بعد حل دستیاب ہے۔