Dokumentacja Pythona / Python documentation:
https://docs.python.org/3/tutorial/datastructures.html#sets
https://docs.python.org/3/tutorial/datastructures.html#dictionaries
Elementami zbiorów są dowolne, niezmienialne (ściślej: hashowalne) obiekty.
The elements of a set can be arbitrary, immutable (more precisely, hashable) objects.
Konstrukcja zbioru przez podanie jego elementów / set construction by writing down its elements:
s = {1, 4, 5, 7, 8, "a", "b"}
Dodanie 1
- zbiór pozostaje bez zmian / Adding 1
- the set is unchanged:
s.add(1)
print(s)
Usunięcie elementu 4
/ Deletion of the element 4
:
s.remove(4)
print(s)
Konstrukcja zbioru z obiektu iterowalnego (np. napisu):
Set construction from an iterable (e.g. string):
s = set("lokomotywa")
t = set("abcaca")
print(s, t)
Operacje mnogościowe:
Set-theoretic operations:
print(s | t) # Suma / union
print(s & t) # Przekrój / intersection
print(s - t) # Różnica / difference
print(s ^ t) # Różnica symetryczna / symmetric difference
print(s ^ t == (s - t) | (t - s)) # Porównanie / Comparison
print('l' in s) # Operator należenia / Membership operator
Inne operacje są na slajdach z wykładu.
See lecture slides for additional operations.
Konstrukcja przez schemat (zbiór składany):
Construction by set comprehension:
{n**2 for n in range(5)}
Zbiór pusty - nie {}
! / Empty set - not {}
!
set() # Zbiór pusty / Empty set
Niezmienialny odpowiednik - frozenset
:
Immutable equivalent - frozenset
:
s = frozenset([1, 2, 3])
# s.add(4) # Nielegalne / Illegal
s |= {4} # Ok (równoważne s = s | {4}) / Ok (equivalent to s = s | {4})
print(s)
Słowniki stowarzyszają klucze z wartościami. Klucze stanowią zbiór (nie powtarzają się, muszą być hashowalne).
Dictionaries associate keys and values. Keys in a dictionary form a set (they are unique and must be hashable).
Konstrukcja przez pary klucz: wartość
:
Construction with pairs key: value
:
d = {1 : 'a', 2 : 'b', 'abc' : [1,2,3], (1,2) : 1}
Odczytanie wartości / Reading a value:
print(d[1])
print(d[(1,2)])
Nowa wartość lub zmiana starej / New value or changing of existing one:
d[1] = 1000
d['abc'] = 'def'
print(d)
Usunięcie klucza (i stowarzyszonej z nim wartości) / Deletion of a key (and the associated value):
del d[1]
print(d)
Iteracja po kluczach / Iteration over keys:
for k in d: # = for k in d.keys()
print(k)
Iteracja po wartościach / Iteration over values:
for v in d.values():
print(v)
Iteracja po parach klucz-wartość / Iteration over key-value pairs:
for k, v in d.items():
print(k, v)
Schemat konstrukcji słowników / Dictionary comprehension:
{n: n ** 2 for n in range(5)}
"Bijektywny" słownik i jego odwrotność:
a "bijective" dictionary and its inverse:
d1 = {1 : 'a', 2 : 'b', 3 : 'c'}
d2 = {v : k for k, v in d1.items()}
print(d1, d2)
Pusty słownik / Empty dictionary:
{}
Konstrukcja słownika z ciągu par klucz-wartość:
Construction of a dictionary from a sequence of key-value pairs:
dict([(1,2), (2,3), "AB"])
Konstrukcja słownika przez parametry nazwane:
Construction of a dictionary by named parameters:
dict(k1='a', k2='b')
Sprawdzenie, czy klucz jest w słowniku:
Checking whether a dictionary contains a key:
print(1 in d1)
print('b' in d2)
print('x' in d2)