← All topics

🐍 Interview Prep

Python

Mutability, comprehensions, generators, decorators, classes and the standard library: what Python-heavy teams test.

πŸ“˜ Learn it from scratch

Visual, hands-on lessons for every pattern in this topic. Do the lesson, then come back and the questions click.

100 questions, most asked first

Ranked by how often each question comes up in real interviews. #1 is the most common.

#1The mutable default argument trapData types & mutabilityMediumFree#4Mutable vs immutable types and referencesData types & mutabilityMediumFree#6Write a decoratorDecorators & context managersMediumFree#7Generators and yieldIterators & generatorsMediumFree#9How do dicts and sets work?Data types & mutabilityMediumFree#10Shallow copy vs deep copyData types & mutabilityMediumFreeUnlock 40 more Python questions Β· all 1,200 questions for $39/year (about 11Β’ a day)See full access#11What is the GIL?ConcurrencyMediumπŸ”’#14Context managers and withDecorators & context managersMediumπŸ”’#15Dunder (magic) methodsOOP & dunder methodsMediumπŸ”’#17classmethod vs staticmethodOOP & dunder methodsMediumπŸ”’#23dataclasses and namedtuplesOOP & dunder methodsMediumπŸ”’#24Scope rules (LEGB), global and nonlocalFunctionsMediumπŸ”’#26Build an iterator classIterators & generatorsMediumπŸ”’#27Threading vs multiprocessing vs asyncioConcurrencyMediumπŸ”’#28async and await in PythonConcurrencyMediumπŸ”’#30Integer division and modulo with negativesData types & mutabilityMediumπŸ”’#37Flatten a nested list (recursion + generators)Iterators & generatorsMediumπŸ”’#39@property: getters and settersOOP & dunder methodsMediumπŸ”’#41Abstract base classesOOP & dunder methodsMediumπŸ”’#47Dates and time zonesStandard libraryMediumπŸ”’#48Regular expressions with reStandard libraryMediumπŸ”’#49itertools in practiceStandard libraryMediumπŸ”’#50heapq for top-k and schedulingStandard libraryMediumπŸ”’#51Binary search with bisectStandard libraryMediumπŸ”’#52deque for queues and sliding windowsStandard libraryMediumπŸ”’#53Why use join to build strings?Pythonic codeMediumπŸ”’#58Custom exceptionsErrorsMediumπŸ”’#59Exception chaining with raise fromErrorsMediumπŸ”’#62Memory management in PythonData types & mutabilityMediumπŸ”’#63Why does `is` work for small numbers?Data types & mutabilityMediumπŸ”’#65Generator expressions vs list comprehensionsIterators & generatorsMediumπŸ”’#69Making objects sortableOOP & dunder methodsMediumπŸ”’#75The for…else clausePythonic codeMediumπŸ”’#78Floats vs Decimal for moneyStandard libraryMediumπŸ”’#79str vs bytes and encodingsData types & mutabilityMediumπŸ”’#80Sorting by multiple keysPythonic codeMediumπŸ”’#81Class attributes vs instance attributesOOP & dunder methodsMediumπŸ”’#82Private attributes and name manglingOOP & dunder methodsMediumπŸ”’#84Race conditions and locks in PythonConcurrencyMediumπŸ”’#86WSGI vs ASGIConcurrencyMediumπŸ”’#88Finding slow Python codeStandard libraryMediumπŸ”’#89Why is NumPy fast?Standard libraryMediumπŸ”’#90Time complexity of Python built-insData types & mutabilityMediumπŸ”’#96When to use assertErrorsMediumπŸ”’#98Is Python compiled or interpreted?FunctionsMediumπŸ”’#99Structural pattern matching (match/case)Pythonic codeMediumπŸ”’