Skip to content

Sets (সেট)

Set হলো পাইথনের এমন একটি কালেকশন যা আনঅর্ডারড (Unordered) এবং এতে কোনো ডুপ্লিকেট আইটেম থাকতে পারে না। এটি গণিতের সেট থিওরির মতো কাজ করে।


১. Set Creation

সেট তৈরি করা হয় সেকেন্ড ব্র্যাকেট { } দিয়ে অথবা set() ফাংশন ব্যবহার করে।

python
numbers = {1, 2, 3, 4, 4, 5} 
print(numbers) # Output: {1, 2, 3, 4, 5} (ডুপ্লিকেট ৪ একবারই আসবে)

# খালি সেট তৈরির সময়:
empty_set = set() # { } দিলে তা ডিকশনারি হয়ে যাবে

২. প্রধান বৈশিষ্ট্যসমূহ

  • Unordered: সেটের আইটেমগুলোর কোনো নির্দিষ্ট ক্রম নেই। তাই আপনি ইনডেক্স ব্যবহার করে কোনো আইটেম অ্যাক্সেস করতে পারবেন না।
  • Unique: একই ভ্যালু একাধিকবার থাকতে পারবে না।
  • Mutable: আপনি সেটে নতুন আইটেম যোগ বা রিমুভ করতে পারবেন, কিন্তু সেটের ভেতরের কোনো আইটেম মডিফাই করতে পারবেন না।

৩. Adding & Removing Items

python
fruits = {"apple", "banana"}

fruits.add("orange")               # একটি আইটেম যোগ করা
fruits.update(["mango", "grape"])  # একাধিক আইটেম যোগ করা

fruits.remove("banana") # না থাকলে Error দিবে
fruits.discard("cherry") # না থাকলেও Error দিবে না

৪. Set Operations (গাণিতিক অপারেশন)

সেটের সবচেয়ে পাওয়ারফুল দিক হলো এর গাণিতিক অপারেশনগুলো।

python
setA = {1, 2, 3, 4}
setB = {3, 4, 5, 6}

# Union (উভয় সেটের সব আইটেম)
print(setA | setB) # {1, 2, 3, 4, 5, 6}

# Intersection (কমন আইটেম)
print(setA & setB) # {3, 4}

# Difference (এ-তে আছে কিন্তু বি-তে নেই)
print(setA - setB) # {1, 2}

# Symmetric Difference (কমন বাদে সব)
print(setA ^ setB) # {1, 2, 5, 6}

৫. Frozen Sets

আপনি যদি এমন একটি সেট চান যা কখনো পরিবর্তন করা যাবে না (অর্থাৎ Immutable), তবে frozenset ব্যবহার করতে পারেন।

python
fs = frozenset([1, 2, 3])
# fs.add(4) # Error!

TIP

একটি লিস্ট থেকে ডুপ্লিকেট আইটেম রিমুভ করার সবচেয়ে সহজ উপায় হলো সেট ব্যবহার করা: list(set(my_list))

Released under the MIT License.