What is a data structure
A data structure is an organized way to store and manage data so that it can be accessed and updated efficiently. In Python the choice of data structure influences speed, memory use, readability, and the safety of your program design. The most important ideas that recur across structures are mutability, ordering, uniqueness, and how elements are addressed. Core ideas you should know first
Mutability
Some structures allow changes after creation. These are called mutable. Others are fixed once created. These are called immutable. Mutability affects how data is shared across variables and how safe it is to pass around a structure without unexpected side effects.
Ordering
Some structures preserve the order in which you add elements. Others care only about membership and not about sequence. Order matters when you need predictable iteration or you care about positions.
Addressing
Some structures locate items by numeric position. Others locate items by a key. Still others locate by the value itself using hashing. This affects how quickly you can retrieve or update a piece of data.
Uniqueness
Some structures allow duplicates. Others automatically keep only one copy of a value. This matters when you need to remove repetition without extra work.
Time complexity
Each structure has typical costs for common actions such as lookup, insertion, and deletion. Although exact costs can vary by implementation details and workload, having a qualitative sense helps you choose wisely. Now the built in data structures in Python
List
A list is an ordered and mutable sequence of elements. It is ideal when you need a collection that can grow or shrink and where position matters. You can add items, remove items, and reorder them. Lists are a good general purpose container for heterogeneous data. Typical access by index is fast, while inserting or removing in the middle can be slower because elements may shift. Lists allow duplicates.
Tuple
A tuple is an ordered and immutable sequence. Once made it cannot change in size or content. Tuples are useful for fixed collections such as a pair of coordinates or a record that should not be edited by accident. Because they are immutable they can be used as keys in mappings when they contain only immutable elements. Tuples also communicate intent. By returning a tuple from a function you signal that the grouping is logical and fixed.
String as a sequence
A string is an immutable sequence of text characters. It behaves like a sequence for many operations such as measuring length and iterating over characters. Treat it as data rather than a container for arbitrary objects. Because it is immutable, any transformation creates a new string.
Dictionary
A dictionary is a mapping from keys to values. It is mutable and preserves insertion order. It shines when you need fast lookups by a meaningful key such as a user name or an identifier. Keys must be hashable and should remain stable while in the dictionary. Dictionaries are the foundation for many higher level patterns such as configuration objects, JSON like data, and frequency counters. Typical lookup and update by key are fast. The order preservation property makes dictionaries suitable for tasks where both association and predictable iteration order matter.
Set
A set is an unordered collection of unique elements. It is mutable and designed for membership testing, deduplication, and mathematical set operations such as union, intersection, and difference. Sets require elements to be hash