Sets (Zbiory)

  • hashtablice o stałej długości
  • nie zawiera kolejności elementów
  • obiekt oraz hash wartość
  • startowy rozmiar 8
  • powiększanie o x4 przy 2/3 zapełnieniu

In [ ]:
iloczyn = set([1, 2, 3, 4, 5]) & set([3, 4])
suma = set([1, 2, 3,]) | set([4, 5])
roznica = set([1, 2, 3, 4, 5]) - set([4, 5])
print(iloczyn)
print(suma)
print(roznica)

In [ ]:
a = [1, 2, 3, 4]
b = [2, 3]
zbior1 = set(a)
zbior2 = set(b)
iloczyn = zbior1 & zbior2
print(zbior2)

Słowniki (Maps/Dictionaries)

  • brak zachowania kolejności dodawania
  • iterowalna
  • tablice asocjacyjne

In [ ]:
imiona = {
    "andrzej": 10,
    "bartek": 15
}
print(imiona)
print(imiona.keys())
print(imiona.values())

In [ ]:
print( dict([("andrzej", 10), (10, 5)]))
imiona = dict(andrzej=10, bartek=5)
print(imiona)
print(imiona.items())
print(dict.fromkeys('abcd', []))

In [ ]:
imiona = dict(andrzej=10, bartek=5)
print(imiona.get("andrzej2", 5))
print("andrzej" in imiona)
print(imiona.pop("andrzej"))
print(imiona.pop("andrzej2", "ala ma kota"))

In [ ]:
imiona = dict(andrzej=10, bartek=5)
print(imiona.setdefault("andrzej"))
print(imiona.setdefault("klucz którego nie ma", "domyślna wartość"))

In [ ]:
from collections import defaultdict
imiona = defaultdict(list)

imiona["andrzej"].append(5)
imiona

In [ ]:
from collections import defaultdict
imiona = defaultdict(set)

imiona["andrzej"].add(5)
imiona

In [ ]:
from collections import defaultdict
imiona = defaultdict(int)

imiona["andrzej"] += 1
imiona["andrzej2"] -= 5
imiona

In [ ]:
from collections import defaultdict

imiona = defaultdict(lambda: 10)

imiona["andrzej"] += 1
print("bartek" in imiona)
print(10 in imiona)
imiona

In [ ]:
from operator import itemgetter

dane = {"a": 1, "b": 2, "c": 4, "d": 5}
pobierz_wartosci = itemgetter("c", "d")
pobierz_wartosci(dane)

In [ ]:
rows = [
    {"a": 1, "b": 2, "c": 4, "d": 5},
    {"a": 4, "b": 2, "c": 4, "d": 10},
    {"a": 2, "b": 2, "c": 4, "d": 7}
]
sorted(rows, key=itemgetter("a", "d"))

OrderedDict


In [ ]:
from collections import OrderedDict
a = OrderedDict.fromkeys('abcde', [])
print(a)
print(a.keys())

In [ ]:
a.move_to_end('b')
print(a)
a.move_to_end('b', last=False)
print(a)

In [ ]:
a = OrderedDict.fromkeys('abcde', [])
print(a.popitem())
print(a.popitem())
print(a.popitem(last=False))

Counter

  • słownik służący do zliczania elementów
  • brak fromkeys

In [ ]:
from collections import Counter
ct = Counter('aaaabbbcdaslfhsdlfdas')
print(ct)
print(ct.most_common(3))
print(ct.elements())
print(sorted(ct.elements()))

In [ ]:
print(sum(Counter('aaaabbbcdaslfhsdlfdas').values()))
print(list(Counter('aaaabbbcdaslfhsdlfdas')))
c = Counter('aaaabbbcdaslfhsdlfdas')
c.clear()
print(c)

In [ ]:
c = Counter('aaabbb')
c['e'] = -4
c['d'] = 0
print(c)
print(+c)

In [ ]:
c = Counter('aaabbb')
print(c)
c.subtract(Counter('abb'))
print(c)