🧠 What are Data Structures?
Data structures are ways to store and organize data so we can access and modify it efficiently.
🧱 Types of Built-in Data Structures in Python
Python has 4 main built-in data structures:
| Type | Ordered | Mutable | Allows Duplicates | Syntax | 
|---|---|---|---|---|
| List | ✅ Yes | ✅ Yes | ✅ Yes | [] | 
| Tuple | ✅ Yes | ❌ No | ✅ Yes | () | 
| Set | ❌ No | ✅ Yes | ❌ No (unique) | {} | 
| Dictionary | ✅ Yes | ✅ Yes | ❌ No (unique keys) | {key: value} | 
1️⃣ Lists – Ordered and Mutable
Used to store multiple items in a single variable.
🔹 Syntax:
my_list = [10, 20, 30, "Python", True]
🔹 Operations
my_list[1]          # Access
my_list.append(40)  # Add at end
my_list.remove(20)  # Remove item
my_list[0] = 100    # Update item
2️⃣ Tuples – Ordered and Immutable
Like lists, but cannot be changed (read-only).
🔹 Syntax:
my_tuple = (10, 20, 30, "Python")
🔹 Operations
my_tuple[1]        # Access
len(my_tuple)      # Length
# Cannot add or remove elements
📌 Use when data should not be changed, like dates or constants.
3️⃣ Sets – Unordered, No Duplicates
Used to store unique values.
🔹 Syntax:
my_set = {1, 2, 3, 4, 4, 2}
print(my_set)  # Output: {1, 2, 3, 4}
🔹 Operations
my_set.add(5)        # Add item
my_set.remove(3)     # Remove item
✅ Good for membership tests and removing duplicates.
4️⃣ Dictionaries – Key-Value Pairs
Used to store data in pairs (like a real-life dictionary).
🔹 Syntax:
my_dict = {"name": "John", "age": 25, "is_student": True}
🔹 Operations
my_dict["name"]             # Access value
my_dict["age"] = 26         # Update value
my_dict["city"] = "Chennai" # Add new pair
del my_dict["is_student"]   # Delete key
🔁 Looping Through Data Structures
🔹 List/Tuple:
for item in my_list:
    print(item)
🔹 Set:
for item in my_set:
    print(item)
🔹 Dictionary:
for key, value in my_dict.items():
    print(key, value)
profile={"name":"kumar","age":20}
for key,value in profile.items():
    print(key,":",value)
Output:
name : kumar
age : 20
🧪 Example Practice:
students = ["Arun", "Beena", "Charles"]
print(students)
marks = (85, 90, 78)
print(marks)
unique_subjects = {"Math", "Science", "Math"}  
print(unique_subjects)
profile = {"name": "Kumar", "age": 20}
print(profile)
📌 Summary for Beginners:
| Data Type | Use for… | 
|---|---|
| List | Store changing sequences | 
| Tuple | Store fixed sequences | 
| Set | Store unique items | 
| Dictionary | Store labeled data (key-value) | 
real-life use cases with examples
✅ 1. List – When Order & Change Matters
📌 Real-Life Use Case:
- Shopping List – You add items, remove items, or change quantities.
🧪 Python Example:
shopping_list = ["milk", "eggs", "bread"]
shopping_list.append("butter")      # Add item
shopping_list.remove("milk")        # Remove item
shopping_list[0] = "cheese" 
# Replace "eggs" with "cheese"
print(shopping_list)  
# Output: ['cheese', 'bread', 'butter']
✅ Use When:
- You need ordered items.
- Items can change (mutable).
- Duplicates are okay.
✅ 2. Tuple – When Data Shouldn’t Change
📌 Real-Life Use Case:
- Date of Birth, GPS coordinates, or Configuration values – These don’t change.
date_of_birth = (1995, 12, 15)  # year, month, day
coordinates = (13.0827, 80.2707)  # Chennai GPS
print("Born in:", date_of_birth[0])
✅ Use When:
- You want a fixed collection of values.
- Memory efficiency is important.
- Used as dictionary keys (immutable).
✅ 3. Set – When You Need Only Unique Items
📌 Real-Life Use Case:
- Attendees List – To ensure no one is counted twice.
- Available tags or unique student IDs.
attendees = {"Alice", "Bob", "Alice", "David"}
print(attendees)  # Output: {'Alice', 'Bob', 'David'}
attendees.add("Eve")     # Add new person
attendees.remove("Bob")  # Remove person
print(attendees)
✅ Use When:
- Order doesn’t matter.
- No duplicates allowed.
- You want fast membership test (inoperator).
✅ 4. Dictionary – Store Data with Labels
📌 Real-Life Use Case:
- Student Profile, Bank Account Details, Product Catalog
student = {
    "name": "Karthik",
    "age": 21,
    "marks": 88,
    "college": "ABC University"
}
# Accessing values
print(student["name"])   # Karthik
student["marks"] = 92    # Update marks
student["city"] = "Chennai"  # Add new key
print(student)
✅ Use When:
- You need to label values (name, age, etc.).
- Quick lookup based on key.
- You want structured data.
💡 Quick Analogy for Remembering:
| Real Life | Python Data Structure | 
|---|---|
| Shopping list | List | 
| Birth certificate | Tuple | 
| Guest register book | Set | 
| Student ID card | Dictionary | 
🔄 Mixed Example (All in One):
students = [
    {"name": "Arun", "age": 17, "subjects": {"Math", "Science"}},
    {"name": "Beena", "age": 18, "subjects": {"Math", "English"}},
]
for student in students:
    print(f"{student['name']} is {student['age']} years old and studies {student['subjects']}")
This uses:
- List of students
- Dictionaries to store each student’s details
- Sets to store unique subjects

Leave a Reply