Closed
Description
This issue describes how to implement the other-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 set comprehensions
and dict comprehensions
in Python.
Learning objectives
- Understand how
set
anddict
comprehensions relate to their underlying data structures and theloop
+append
method of creating/computing them. - Create a
dict
comprehension from aloop
+append
- Create a
set
comprehension from aloop
+append
- Create a
dict
comprehension fromLists
,Sets
,Tuples
, or otheriterables
(such aszip()
ordict.items()
) - Create a
set
comprehension fromLists
,Sets
,Tuples
, or otheriterables
(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 (of either flavor)
- Create a nested comprehension (of either flavor) with one or more formatting or filtering conditions
Out of scope
- Memory and performance characteristics and optimizations
generators
andgenerator expressions
inother comprehensions
- using the data structures in
collections
in combination with, or as part of aset
ordict
comprehension. - Using the
assignment expression
(walrus operator) with either flavor of comprehension.
Concepts
dict-comprehensions
set-comprehensions
comprehension syntax
Prerequisites
basics
bools
conditionals
comparisons
loops
iteration
Resources to refer to
- List Comprehensions (Python official docs)
- Nested List Comprehensions (Python official docs)
- Comprehending Python's Comprehensions (Dan Bader)
- List and Dict Comprehensions in Python (Timothy Bramlett)
Hints
List Comprehensions
section of the Python docs tutorial: List Comprehensions- This animated GIF from Trey Hunner: List Comprehensions: The Movie
After
comprehension syntax
for other data structures such assets
anddictionaries
generators
andgenerator expressions
generators
andgenerator expressions
inlist 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.