List Comprehensions and Generators
Design a small subsystem that relies on List Comprehensions and Generators. Outline components, data flow, failure modes, and metrics.
Answers use simple, clear English.
Quick interview answer
Use List Comprehensions and Generators as the core idea. Example shape: Parse log lines: active_errors = [ln for ln in lines if 'ERROR' in ln and ln.strip()]..
Detailed answer
Use List Comprehensions and Generators as the core idea. Example shape: Parse log lines: active_errors = [ln for ln in lines if 'ERROR' in ln and ln.strip()].. Watch for: Nested comps hurt readability; eager list comp on huge data wastes RAM.. Measure success via latency/error/saturation. Core: [f(x) for x in iterable if cond] builds lists concisely. Generator expressions ( ... ) are lazy and memory-efficient. Dict/set comps follow same syntax. Real-time example: Parse log lines: active_errors = [ln for ln in lines if 'ERROR' in ln and ln.strip()]. Pros: Readable for simple transforms; often faster than manual append loops. Cons: Nested comps hurt readability; eager list comp on huge data wastes RAM. Common mistakes: Side effects inside comprehension; shadowing loop variable leaks in Py2 (not Py3). Best practices: Keep one logical clause; switch to generator for streaming pipelines. Audience level: Engineering Manager.
Full explanation
[f(x) for x in iterable if cond] builds lists concisely. Generator expressions ( ... ) are lazy and memory-efficient. Dict/set comps follow same syntax.
Real example & use case
Parse log lines: active_errors = [ln for ln in lines if 'ERROR' in ln and ln.strip()].
Pros & cons
Pros: Readable for simple transforms; often faster than manual append loops. Cons: Nested comps hurt readability; eager list comp on huge data wastes RAM.
Common mistakes
Side effects inside comprehension; shadowing loop variable leaks in Py2 (not Py3).
Best practices
Keep one logical clause; switch to generator for streaming pipelines.
Follow-up questions
- How would you test List Comprehensions and Generators?
- What metrics prove List Comprehensions and Generators is healthy in prod?
- How does List Comprehensions and Generators change at 10× traffic?