Home β€Ί Interview Questions β€Ί Why does the generator expression in `sum(1 for me…

Why does the generator expression in `sum(1 for member in self.members if member.membership_status == ...)` cause a SyntaxError, and how can it be fixed?

🟒 Easy Conceptual Junior level
1Times asked
Oct 2026Last seen
Oct 2026First seen

πŸ’‘ Model Answer

In Python, the sum() function expects an iterable. When you write sum(1 for member in self.members if member.membership_status == ...), the generator expression is missing parentheses, so the parser treats the for as part of the sum call, leading to a SyntaxError. The correct syntax is sum(1 for member in self.members if member.membership_status == ...) with parentheses around the generator expression, or more idiomatically, sum(1 for member in self.members if member.membership_status in (MembershipStatus.SILVER, MembershipStatus.GOLD)). Alternatively, you can use a list comprehension: sum(1 for member in self.members if member.membership_status in [MembershipStatus.SILVER, MembershipStatus.GOLD]). The key point is that the generator expression must be enclosed in parentheses so that sum receives a single iterable argument. This pattern is common when counting items that satisfy a condition. Complexity is O(n) time and O(1) extra space.

This answer was generated by AI for study purposes. Use it as a starting point β€” personalize it with your own experience.

🎀 Get questions like this answered in real-time

Assisting AI listens to your interview, captures questions live, and gives you instant AI-powered answers on a discreet on-screen overlay.

Get Assisting AI β€” Starts at β‚Ή500