[New Concept Exercise] : list-comprehensions
This issue describes how to implement the list-comprehensions concept exercise for the Python track.
Getting started
Please please please read the docs before starting. Posting PRs without reading these docs will be a lot more frustrating for you during the review cycle, and exhaust Exercism's maintainers' time. So, before diving into the implementation, please read up on the following documents:
- Contributing to Exercism | Exercism and GitHub | Contributor Pull Request Guide
- What are those Weird Task Tags about?
- Building Language Tracks: An Overview
- What are Concepts?
- Concept Exercise Specifications
- Concept Specifications
- Exercism Formatting and Style Guide
- Exercism Markdown Specification
- Reputation
Goal
The goal of this exercise is to teach the syntax and variants of list comprehensions in Python.
Learning objectives
- Understand how a
list comprehensionrelates to theloop+appendmethod of creating/computing aList. - Create a list comprehension from a
loop+append - Create a list comprehension from a
string,List, or otheriterable(such aszip()ordict.items()) - Use one or more conditions/operators/methods to filter comprehension inputs
- Use methods or logic to format the elements (output members) of the comprehension
- Create a nested comprehension
- Create a nested comprehension with one or more formatting or filtering conditions
Out of scope
- Memory and performance characteristics and optimizations
-
generatorsandgenerator expressionsinlist comprehensions - How
map()andfilter()relate to or differ fromlist comprehensions - Using the
assignment expression(walrus operator) with alist comprehension
Concepts
-
list-comprehensions
Prerequisites
-
basics -
bools -
comparisons -
conditionals -
lists -
list-methods -
loops -
iteration -
sequences
Resources to refer to
- List Comprehensions (Python official docs)
- Nested List Comprehensions (Python official docs)
- When to Use a List Comprehension in Python (Real Python)
- Python List Comprehensions: Explained Visually (Trey Hunner)
Hints
-
List Comprehensionssection of the Python docs tutorial: List Comprehensions - This animated GIF from Trey Hunner: List Comprehensions: The Movie
After
-
comprehension syntaxfor other data structures such assetsanddictionaries -
generatorsandgenerator expressions -
generatorsandgenerator expressionsinlist comprehensions
Representer
No changes required.
Analyzer
No changes rquired.
Implementing
- Tests should be written using unittest.TestCase, and the test file named list_comprehensions_test.py.
- How to Implement a Concept Exercise in Python
- make-concept-exercise Utility
Help
If you have any questions while implementing the exercise, please post the questions as comments in this issue.
This issue has been automatically marked as abandoned because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Is this actually claimed? :) If not, I'd like to work on it. By the way, can we steal https://github.com/exercism/elixir/blob/main/exercises/concept/boutique-suggestions/.docs/instructions.md for this? Elixir's list comprehensions are very similar.
Hi @Steffan153! Welcome to the Python track. 👋🏽
This is indeed already claimed by me, and is in progress. Thanks for checking tho!
Flagging this as a re-do with new issue template, as this has aged, and the actions bot is getting annoying. Closing for now until the redo can happen.