মডিউল পাঠ (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তুলনার জন্য: একটি list এর ভিতরে in দিয়ে অনুসন্ধান করা হল O(n) এবং দীর্ঘ
এটা অনেক ধীর তালিকা.
হিমায়িত সেট: অপরিবর্তনীয় সংস্করণ
frozenset({1, 2, 3}) হল হ্যাশেবল সংস্করণ: এটি একটি dict কী বা একটি হতে পারে
অন্য সেটের উপাদান।
অপারেশন এবং কর্মক্ষমতা সেট করুন
সেটগুলিকে হ্যাশ টেবিল হিসাবে প্রয়োগ করা হয়, যা সদস্যতা পরীক্ষাকে (x in my_set) অত্যন্ত দ্রুত করে তোলে: এটি ধ্রুবক সময়ের মধ্যে চলে O(1), তালিকার বিপরীতে যেখানে অনুসন্ধানে লিনিয়ার সময় লাগে O(n)৷ উপরন্তু, তারা ইউনিয়ন (|), ছেদ (&), এবং পার্থক্য (-) এর মত বীজগণিতিক ক্রিয়াকলাপ সমর্থন করে।
চেষ্টা করে দেখুন
'সংখ্যা = [1, 2, 2, 3, 3, 3, 4]' তালিকা দেওয়া, অনন্য মান (যেকোন ক্রমে) দিয়ে `অনন্য_আইটেম` তৈরি করুন এবং তারপর লেন (অনন্য_আইটেম) হিসাবে `গণনা` গণনা করুন। 'গণনা' মূল্যায়ন করুন।
ইঙ্গিত দেখান
সেট(সংখ্যা) সদৃশগুলি সরিয়ে দেয়।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
ব্যায়াম পর্যালোচনা করুন
প্রদত্ত `a = {1, 2, 3, 4}` এবং `b = {3, 4, 5, 6}`, ছেদটিকে `সাধারণ_আইটেম` এবং পার্থক্য 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 প্রচেষ্টার পরে উপলব্ধ