Python – #27 – set()

Typ - set()

Set jest zmienną, która pozwala przechowywać wiele obiektów. 

  • set’y są nieuporządkowane (unordered). Kolejność obiektów w secie może być różna, przez co wartości nie są indeksowane. 
  • set’y są obiektami mutowalnymi (Mutable). Oznacza to, że pozwalają zmieniać swoją zawartość. Do istniejącego set’a możemy dodawać obiekty oraz możemy je usuwać. Obiektów już znajdujących się w secie nie jesteśmy w stanie zmodyfikować, lecz możemy to obejść poprzez usunięcie i dodanie nowego obiektu. 
  • set’y nie pozwalają przechowywać obiektów o powtarzających się wartościach.
  • set’y pozwalają przechowywać jedynie obiekty hashowalne (hashable), to jest int, float, bool, str, tuple, None.

Deklaracja set’a bez wartości:

set1 = set()

Deklaracja set’a z watościami:

set1 = {1, 2, 3}
set2 = {1.2, 3.4, 5.6}
set3 = {True, False, True}
set4 = {'one', 'two', 'three'}
set5 = {1, 1.2, 'three', True}
set6 = set({1, 1.2, 'three', True})

Set’y przechodują jedynie unikalne wartości:

set1 = {1, 1, 3}
print(set1)  # wynik --> {1, 3}

set1 = {1.1, 1.1, 3.3}
print(set1)  # wynik --> {1.1, 3.3}

set1 = {True, False, True}
print(set1)  # wynik --> {False, True}

set1 = {'one', 'one', 'three'}
print(set1)  # wynik --> {'three', 'one'}

Set’y przechodują jedynie hashowalne obiekty:

set1 = {1, 2, 3}
print(set1)  # wynik --> {1, 2, 3}

set1 = {1.1, 2.2, 3.3}
print(set1)  # wynik --> {1.1, 2.2, 3.3}

set1 = {True, False}
print(set1)  # wynik --> {False, True}

set1 = {'one', 'two', 'three'}
print(set1)  # wynik --> {'two', 'three', 'one'}

set1 = {(1, 2, 3), (5, 6, 7), (-1, -2, -3)}
print(set1)  # wynik --> {(5, 6, 7), (1, 2, 3), (-1, -2, -3)}

set1 = {None}
print(set1)  # wynik --> {None}

set1 = {[1, 2, 3], [5, 6, 7], [-1, -2, -3]}
print(set1)  # wynik --> TypeError: unhashable type: 'list'

set1 = {{1, 2, 3}, {5, 6, 7}, {-1, -2, -3}}
print(set1)  # wynik --> TypeError: unhashable type: 'set'

set1 = {{1:'a', 2:'b', 3:'c'}, {5:'d', 6:'e', 7:'f'}, {-1:'g', -2:'h', -3:'i'}}
print(set1)  # wynik --> TypeError: unhashable type: 'dict'

Typ zmiennej obiektu set:

set1 = set()
print(type(set1))  # wynik --> <class 'set'>

Autor artykułu
Dominik Bednarski

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.