সেট (Set) মূলত ভিন্ন হ্যাশ-টেবিল অবজেক্টের একটি আনঅর্ডার্ড সংকলন। সেট ব্যবহার করে গাণিতিক অপারেশন যেমন ইউনিয়ন, ইন্টারসেকশন, ডিফারেন্স ইত্যাদি করা যায়। সেট দিয়ে কোনো সংকলন থেকে ডুপ্লিকেট এলিমেন্ট সরাওয়াও যায়।
সেট এলিমেন্টের পজিশন রেকর্ড করে না। এটি ইন্ডেক্সিং, স্লাইসিং বা অন্যান্য সিকোয়েন্স-সম্পর্কিত অপারেশন সাপোর্ট করে না।
পাইথনে মূলত দুটি ধরনের সেট রয়েছে: set এবং frozenset। set টাইপ মিউটেবল, frozenset ইমিউটেবল। set-এ add(), remove() ইত্যাদি অপারেশন করা যায়, কিন্তু frozenset-এ সম্ভব নয়।
সেট-সম্পর্কিত কিছু মেথড এবং অপারেশন নিচে দেওয়া হলো:
len(s) মেথড
len() মেথড সেটে কতগুলো এলিমেন্ট আছে তা রিটার্ন করে।
(x in s) বা (y not in s) অপারেশন
in এবং not in অপারেশন সেটে এলিমেন্টের সদস্যতা (membership) চেক করতে ব্যবহৃত হয়। প্রথম স্টেটমেন্টে (x in s), x যদি সেট s-এ থাকে তবে true রিটার্ন করবে। দ্বিতীয়টি (y not in s) y যদি সেটে না থাকে তবে true রিটার্ন করবে।
isdisjoint(other_set) মেথড
এই মেথড চেক করবে other_set কারেন্ট সেটের সাথে disjoint (অসামান্য) কিনা। যদি কমপক্ষে একটি এলিমেন্ট উভয়েই সাধারণ থাকে, তবে মেথডটি false রিটার্ন করবে।
issuperset(other_set) মেথড
এই ফাংশন true রিটার্ন করবে যদি other_set-এর সকল এলিমেন্ট কারেন্ট সেটেও থাকে। এটা মূলত চেক করে কারেন্ট সেট other_set-এর সুপারসেট কিনা।
union(other_set) মেথড
union() ফাংশন কারেন্ট সেট এবং other_set-এর সকল এলিমেন্ট সংগ্রহ করে একটি নতুন সেট রিটার্ন করবে।
intersection(other_set) মেথড
intersection() ফাংশন কারেন্ট সেট এবং other_set-এর সাধারণ এলিমেন্টগুলো সংগ্রহ করে একটি নতুন সেট রিটার্ন করবে।
difference(other_set) মেথড
difference() মেথড একটি সেট রিটার্ন করবে, যেখানে ফাইনাল সেটে প্রথম সেটের সকল এলিমেন্ট থাকবে দুটি সেটের সাধারণ এলিমেন্টগুলো বাদ দিয়ে।
add(elem) মেথড
সেটে elem এলিমেন্ট যোগ করবে।
discard(elem) মেথড
সেট থেকে elem এলিমেন্ট সরিয়ে দেবে। এটি তখন কাজ করবে যখন elem সেটে উপস্থিত থাকে। আরেকটি মেথড রয়েছে remove()। remove()-এ আইটেম সেটে না থাকলে KeyError উত্থাপন হবে।
উদাহরণ কোড
mySet1 = {1, 2, 5, 6} mySet2 = {8, 5, 3, 4} mySet3 = set(range(15)) # সেটে ০ থেকে ১৪ পর্যন্ত সব এলিমেন্ট mySet4 = {10, 20, 30, 40} print(set(mySet1.union(mySet2))) print(set(mySet1.intersection(mySet2))) print(set(mySet1.difference(mySet2))) print(mySet3.issuperset(mySet1)) print(mySet1.isdisjoint(mySet4)) mySet4.add(45) print(mySet4) mySet4.discard(40) print(mySet4) আউটপুট
set([1, 2, 3, 4, 5, 6, 8]) set([5]) set([1, 2, 6]) True True set([40, 10, 20, 45, 30]) set([10, 20, 45, 30])