🧠 সেট (Set) কী?
সেট হলো একটি ডেটা কালেকশন, যা:
✅ অর্ডারহীন (unordered)
✅ অনন্য মান রাখে (unique)
✅ পরিবর্তনযোগ্য (mutable)
📌 লক্ষ্য: একই মান একবারই থাকবে, এবং ইনডেক্স নেই।
📘 উদাহরণ:
fruits = {"Apple", "Banana", "Mango", "Apple"}
print(fruits)📤 আউটপুট:
{'Banana', 'Apple', 'Mango'}লক্ষ্য:
"Apple"একবারই আছে।
🔍 সেটের বৈশিষ্ট্য
✅ অর্ডারহীন (Unordered)
✅ অনন্য মান (Unique values)
✅ mutable (পরিবর্তন করা যায়)
✅ iterable (for loop ব্যবহার করা যায়)
➕ সেটে আইটেম যোগ করা
📘 উদাহরণ:
fruits = {"Apple", "Banana"}
fruits.add("Mango")
print(fruits)📤 আউটপুট:
{'Banana', 'Apple', 'Mango'}❌ সেট থেকে আইটেম মুছে ফেলা
📘 উদাহরণ:
fruits = {"Apple", "Banana", "Mango"}
fruits.remove("Banana") # Item মুছে ফেলা, যদি না থাকে → error
fruits.discard("Orange") # Item না থাকলেও error হয় না
print(fruits)📤 আউটপুট:
{'Apple', 'Mango'}🔄 সেট অপারেশন (Union, Intersection, Difference)
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
print("Union:", A | B) # সব আইটেম
print("Intersection:", A & B) # সাধারণ আইটেম
print("Difference A-B:", A - B) # A তে আছে B তে নেই
print("Difference B-A:", B - A) # B তে আছে A তে নেই📤 আউটপুট:
Union: {1, 2, 3, 4, 5, 6}
Intersection: {3, 4}
Difference A-B: {1, 2}
Difference B-A: {5, 6}🧩 লুপে ব্যবহার
fruits = {"Apple", "Banana", "Mango"}
for fruit in fruits:
print(fruit)📤 আউটপুট (unordered):
Apple
Banana
Mango❄️ ফ্রোজেনসেট (frozenset)
ফ্রোজেনসেট হলো immutable set, মানে একবার তৈরি করলে পরিবর্তন করা যায় না।
📘 উদাহরণ:
fs = frozenset([1, 2, 3, 4])
print(fs)
# fs.add(5) ❌ Error হবে📤 আউটপুট:
frozenset({1, 2, 3, 4})🧠 ফ্রোজেনসেটের ব্যবহার
✅ Dictionary এর key হিসেবে ব্যবহার করা যায়
✅ Set এর immutable version প্রয়োজন হলে ব্যবহার করা হয়
📘 উদাহরণ:
fs1 = frozenset([1, 2, 3])
fs2 = frozenset([3, 4, 5])
print("Union:", fs1 | fs2)
print("Intersection:", fs1 & fs2)📤 আউটপুট:
Union: frozenset({1, 2, 3, 4, 5})
Intersection: frozenset({3})🏁 উপসংহার
এখন তুমি জানো —
✅ পাইথনে Set কীভাবে ব্যবহার হয়
✅ কীভাবে আইটেম যোগ, মুছে ফেলা যায়
✅ সেট অপারেশন: Union, Intersection, Difference
✅ frozenset কি এবং কিভাবে ব্যবহার করা হয়








