Browse by Topic

Popular

Latest

Latest Posts

Diagram showing how Python slicing extracts a subrange from a sequence using start, stop, and step indices
Python

Python Slicing: Syntax, Behavior, and Edge Cases

Understand python slicing: start, stop, and step syntax, negative indices, slice assignment, copy semantics, and the edge cases that cause bugs.

pythonslicingsequenceslist-slicing
Illustration of a compact range object holding three parameters instead of a long list of integers.
Python

Python range Memory Efficiency: How range() Stays Small

Understand how Python's range object stores its defining parameters instead of materializing every value, and when list(range(...)) is still necessary.

rangememory usagelazy evaluationiteration
Illustration comparing a compact range object with a large list of numbers, symbolizing lazy vs eager memory usage in Python.
Python

Python range vs list: Key Differences and Use Cases

Learn how Python's range and list types differ in memory usage, iteration behavior, mutability, and when to choose each.

pythonrangelistmemory
Python code showing a reverse range loop with a downward arrow, illustrating descending iteration
Python

Python Reverse Range: How to Iterate Backward

python reverse range: Learn how to create and use reverse ranges in Python with range() and reversed(), including practical examples and common pitfalls.

Pythonrangeiterationreversed
Illustration of Python negative range showing a descending sequence from 5 to 1 with a downward arrow
Python

Python Negative Range: Descending Sequences with range()

Learn how to use Python range() with a negative step to generate descending sequences, handle edge cases, and avoid off-by-one errors.

pythonrangenegative steploops
Illustration of Python range syntax with start, stop, and step parameters shown as a number line.
Python

Python range syntax: start, stop, step

Understand the python range syntax for start, stop, and step, including lazy evaluation, negative steps, and practical loop patterns.

pythonrangeiterationfor-loop
Illustration of Python range object generating a sequence of numbers lazily
Python

Python range: How It Works and When to Use It

python range: Understand Python's range object: how it generates sequences lazily, its memory efficiency, and when to convert it to a list.

rangeiteratorsloopslazy evaluation
Illustration of a Python dictionary with custom objects as keys, highlighting hashability.
Python

Python Hashable Dictionary Keys: How to Use Them Correctly

Learn what makes Python objects hashable, how to use custom classes as dictionary keys, and how to avoid mutable-key pitfalls.

PythonDictionariesHashableCustom Objects
A stylized dictionary with a key and lock icon, representing the requirements for Python dictionary keys.
Python

Python Dictionary Key Requirements

Python dictionary keys must be hashable and unique. This article explains why stable, effectively immutable keys are the safe choice and how to use custom objects correctly.

hashableimmutabilitydictionary keysPython data structures
Illustration of a Python dictionary with numbered entries showing insertion order preservation.
Python

Python Dict Order Preservation

Understand Python's dict order preservation guarantee, its history, practical implications, and when OrderedDict is still worth using for compatibility.

pythondictordereddictinsertion order