9.3. Comprehension Set¶
9.3.1. Syntax¶
Short Syntax:
>>> {x+10 for x in range(0, 5)}
{10, 11, 12, 13, 14}
Long Syntax:
>>> set(x+10 for x in range(0, 5))
{10, 11, 12, 13, 14}
9.3.2. Use Case - 0x01¶
Unique
>>> DATA = [
... ('sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species'),
... (5.8, 2.7, 5.1, 1.9, 'virginica'),
... (5.1, 3.5, 1.4, 0.2, 'setosa'),
... (5.7, 2.8, 4.1, 1.3, 'versicolor'),
... (6.3, 2.9, 5.6, 1.8, 'virginica'),
... (6.4, 3.2, 4.5, 1.5, 'versicolor'),
... (4.7, 3.2, 1.3, 0.2, 'setosa'),
... (7.0, 3.2, 4.7, 1.4, 'versicolor'),
... ]
>>> result = {row[-1] for row in DATA[1:]}
>>>
>>> sorted(result)
['setosa', 'versicolor', 'virginica']
>>>
>>> dict(enumerate(sorted(result)))
{0: 'setosa', 1: 'versicolor', 2: 'virginica'}
9.3.3. Use Case - 0x02¶
>>> DATA = [
... ('sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species'),
... (5.8, 2.7, 5.1, 1.9, 'virginica'),
... (5.1, 3.5, 1.4, 0.2, 'setosa'),
... (5.7, 2.8, 4.1, 1.3, 'versicolor'),
... (6.3, 2.9, 5.6, 1.8, 'virginica'),
... (6.4, 3.2, 4.5, 1.5, 'versicolor'),
... (4.7, 3.2, 1.3, 0.2, 'setosa'),
... ]
>>> result = {y for *X,y in DATA[1:]}
>>>
>>> sorted(result)
['setosa', 'versicolor', 'virginica']
>>>
>>> result = dict(enumerate(sorted(result)))
>>> result
{0: 'setosa', 1: 'versicolor', 2: 'virginica'}