*Memo:
- My post explains a frozenset (1).
set()
can create a set with or without an iterable as shown below:
*Memo:
- The 1st argument is
iterable
(Optional-Default:()
-Type:Iterable):- Don't use
iterable=
.
- Don't use
# Empty set
print(set())
print(set(()))
# set()
print(set([0, 1, 2, 3, 4])) # list
print(set((0, 1, 2, 3, 4))) # tuple
print(set(iter([0, 1, 2, 3, 4]))) # iterator
print(set({0, 1, 2, 3, 4})) # set
print(set(frozenset({0, 1, 2, 3, 4}))) # frozenset
print(set(range(5))) # range
# {0, 1, 2, 3, 4}
print(set({'name': 'John', 'age': 36})) # dict
print(set({'name': 'John', 'age': 36}.keys())) # dict.keys()
# {'age', 'name'}
print(set({'name': 'John', 'age': 36}.values())) # dict.values()
# {'John', 36}
print(set({'name': 'John', 'age': 36}.items())) # dict.items()
# {('age', 36), ('name', 'John')}
print(set('Hello')) # str
# {'H', 'e', 'l', 'o'}
print(set(b'Hello')) # bytes
print(set(bytearray(b'Hello'))) # bytearray
# {72, 108, 101, 111}
A set comprehension can create a set as shown below:
<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}
<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})}
<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})})}
A set cannot be read or changed by indexing or slicing as shown below:
*Memo:
- A del statement can still be used to remove one or more variables themselves.
A = {10, 20, 30, 40, 50, 60}
print(A[0], A[2:6])
# TypeError: 'set' object is not subscriptable
A = {10, 20, 30, 40, 50, 60}
A[0] = 100
A[2:6] = [200, 300]
# TypeError: 'set' object does not support item assignment
A = {10, 20, 30, 40, 50, 60}
del A[0], A[3:5]
# TypeError: 'set' object doesn't support item deletion
A = {10, 20, 30, 40, 50, 60}
del A
print(A)
# NameError: name 'A' is not defined
If you really want to read or change a set, use list() and set()
as shown below:
A = {10, 20, 30, 40, 50, 60}
A = list(A)
print(A[0], A[2:6])
# 50 [40, 10, 60, 30]
A[0] = 100
A[2:6] = [200, 300]
A = set(A)
print(A)
# {200, 100, 20, 300}
A = {10, 20, 30, 40, 50, 60}
A = list(A)
del A[0], A[3:5]
A = set(A)
print(A)
# {40, 10, 20}
Top comments (0)