<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 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
Step1:  Słowniki (Maps/Dictionaries)
brak zachowania kolejności dodawania
iterowalna
tablice asocjacyjne
Step2:  OrderedDict
Step3:  Counter
słownik służący do zliczania elementów
brak fromkeys
<ASSISTANT_TASK:>
Python Code:
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)
a = [1, 2, 3, 4]
b = [2, 3]
zbior1 = set(a)
zbior2 = set(b)
iloczyn = zbior1 & zbior2
print(zbior2)
Explanation: 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
End of explanation
imiona = {
    "andrzej": 10,
    "bartek": 15
}
print(imiona)
print(imiona.keys())
print(imiona.values())
print( dict([("andrzej", 10), (10, 5)]))
imiona = dict(andrzej=10, bartek=5)
print(imiona)
print(imiona.items())
print(dict.fromkeys('abcd', []))
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"))
imiona = dict(andrzej=10, bartek=5)
print(imiona.setdefault("andrzej"))
print(imiona.setdefault("klucz którego nie ma", "domyślna wartość"))
from collections import defaultdict
imiona = defaultdict(list)
imiona["andrzej"].append(5)
imiona
from collections import defaultdict
imiona = defaultdict(set)
imiona["andrzej"].add(5)
imiona
from collections import defaultdict
imiona = defaultdict(int)
imiona["andrzej"] += 1
imiona["andrzej2"] -= 5
imiona
from collections import defaultdict
imiona = defaultdict(lambda: 10)
imiona["andrzej"] += 1
print("bartek" in imiona)
print(10 in imiona)
imiona
from operator import itemgetter
dane = {"a": 1, "b": 2, "c": 4, "d": 5}
pobierz_wartosci = itemgetter("c", "d")
pobierz_wartosci(dane)
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"))
Explanation: Słowniki (Maps/Dictionaries)
brak zachowania kolejności dodawania
iterowalna
tablice asocjacyjne
End of explanation
from collections import OrderedDict
a = OrderedDict.fromkeys('abcde', [])
print(a)
print(a.keys())
a.move_to_end('b')
print(a)
a.move_to_end('b', last=False)
print(a)
a = OrderedDict.fromkeys('abcde', [])
print(a.popitem())
print(a.popitem())
print(a.popitem(last=False))
Explanation: OrderedDict
End of explanation
from collections import Counter
ct = Counter('aaaabbbcdaslfhsdlfdas')
print(ct)
print(ct.most_common(3))
print(ct.elements())
print(sorted(ct.elements()))
print(sum(Counter('aaaabbbcdaslfhsdlfdas').values()))
print(list(Counter('aaaabbbcdaslfhsdlfdas')))
c = Counter('aaaabbbcdaslfhsdlfdas')
c.clear()
print(c)
c = Counter('aaabbb')
c['e'] = -4
c['d'] = 0
print(c)
print(+c)
c = Counter('aaabbb')
print(c)
c.subtract(Counter('abb'))
print(c)
Explanation: Counter
słownik służący do zliczania elementów
brak fromkeys
End of explanation
<END_TASK>