.. include:: global.rst ============================ Structuring Data In Python ============================ Overview -------- Structuring data in Python involves organizing and storing data in ways that make it efficient to access, modify, and analyze. Python provides several built-in data structures and tools to support this. Core Data Structures -------------------- Lists ^^^^^ Lists are ordered, mutable collections. - Defined using square brackets ``[]`` - Can store mixed data types - Support indexing and slicing Example:: numbers = [1, 2, 3, 4] numbers.append(5) Tuples ^^^^^^ Tuples are ordered, immutable collections. - Defined using parentheses ``()`` - Cannot be changed after creation - Useful for fixed data Example:: point = (10, 20) Dictionaries ^^^^^^^^^^^^ Dictionaries store key-value pairs. - Defined using curly braces ``{}`` - Keys must be unique and immutable - Values can be any type Example:: user = {"name": "Alice", "age": 25} print(user["name"]) Sets ^^^^ Sets are unordered collections of unique elements. - Defined using ``{}`` or ``set()`` - Automatically remove duplicates - Support set operations Example:: unique_numbers = {1, 2, 2, 3} Custom Data Structures ---------------------- Classes ^^^^^^^ Classes allow you to create custom data structures. - Combine data (attributes) and behavior (methods) - Support object-oriented design Example:: class Person: def __init__(self, name, age): self.name = name self.age = age p = Person("Alice", 25) Data Classes ^^^^^^^^^^^^ Data classes simplify class creation for storing data. - Introduced in Python 3.7 - Automatically generate ``__init__``, ``__repr__``, etc. Example:: from dataclasses import dataclass @dataclass class Person: name: str age: int Nested Structures ----------------- Data structures can be combined to represent complex data. Example:: students = [ {"name": "Alice", "grades": [90, 85, 88]}, {"name": "Bob", "grades": [78, 82, 80]} ] Benefits: - Represent real-world relationships - Enable hierarchical data organization Choosing the Right Structure ---------------------------- Consider the following: - Use lists for ordered, changeable collections - Use tuples for fixed data - Use dictionaries for fast key-based lookup - Use sets for uniqueness and membership testing Summary ------- Effective data structuring in Python helps: - Improve performance - Simplify code - Enhance readability and maintainability Common tools include lists, tuples, dictionaries, sets, and classes.