*Memo:
- My post explains a list comprehension.
- My post explains a tuple comprehension.
- My post explains a frozenset comprehension.
- My post explains a dictionary comprehension.
- My post explains a generator comprehension.
- My post explains a set (1).
A comprehension is the concise expression to create an iterable and there are a list, tuple, set, frozenset, dictionary(dict) and generator comprehension:
<Set comprehension>:
1D set:
sample = {0, 1, 2, 3, 4, 5, 6, 7}
A = {x**2 for x in sample}
print(A)
# {0, 1, 4, 36, 9, 16, 49, 25}
The below is without a set comprehension:
sample = {0, 1, 2, 3, 4, 5, 6, 7}
A = []
for x in sample:
A.append(x**2)
A = set(A)
print(A)
# {0, 1, 4, 36, 9, 16, 49, 25}
sample = {0, 1, 2, 3, 4, 5, 6, 7}
A = set()
for x in sample:
A.add(x**2)
print(A)
# {0, 1, 4, 36, 9, 16, 49, 25}
2D set:
sample = {frozenset([0, 1, 2, 3]), frozenset([4, 5, 6, 7])}
A = {frozenset(y**2 for y in x) for x in sample}
print(A)
# {frozenset({16, 25, 36, 49}), frozenset({0, 1, 4, 9})}
The below is without a set comprehension:
sample = {frozenset([0, 1, 2, 3]), frozenset([4, 5, 6, 7])}
A = []
for i, x in enumerate(sample):
A.append([])
for y in x:
A[i].append(y**2)
A[i] = frozenset(A[i])
A = set(A)
print(A)
# {frozenset({16, 25, 36, 49}), frozenset({0, 1, 4, 9})}
sample = {frozenset([0, 1, 2, 3]), frozenset([4, 5, 6, 7])}
A = set()
for x in sample:
def func(x):
for y in x:
yield y**2
A.add(frozenset(func(x)))
print(A)
# {frozenset({16, 25, 36, 49}), frozenset({0, 1, 4, 9})}
3D set:
sample = {frozenset([frozenset([0, 1]), frozenset([2, 3])]),
frozenset([frozenset([4, 5]), frozenset([6, 7])])}
A = {frozenset(frozenset(z**2 for z in y) for y in x) for x in sample}
print(A)
# {frozenset({frozenset({16, 25}), frozenset({49, 36})}),
# frozenset({frozenset({9, 4}), frozenset({0, 1})})}
The below is without a set comprehension:
sample = {frozenset([frozenset([0, 1]), frozenset([2, 3])]),
frozenset([frozenset([4, 5]), frozenset([6, 7])])}
A = []
for i, x in enumerate(sample):
A.append([])
for j, y in enumerate(x):
A[i].append([])
for z in y:
A[i][j].append(z**2)
A[i][j] = frozenset(A[i][j])
A[i] = frozenset(A[i])
A = set(A)
print(A)
# {frozenset({frozenset({16, 25}), frozenset({49, 36})}),
# frozenset({frozenset({9, 4}), frozenset({0, 1})})}
sample = {frozenset([frozenset([0, 1]), frozenset([2, 3])]),
frozenset([frozenset([4, 5]), frozenset([6, 7])])}
A = set()
for x in sample:
def func(x):
for z, y in x:
yield frozenset({z**2, y**2})
A.add(frozenset(func(x)))
print(A)
# {frozenset({frozenset({16, 25}), frozenset({49, 36})}),
# frozenset({frozenset({9, 4}), frozenset({0, 1})})}
Top comments (0)