Repository navigation
Expand file tree
/
Copy pathpython39_union_operator.py
More file actions
70 lines (50 loc) · 1.99 KB
/
Copy pathpython39_union_operator.py
File metadata and controls
70 lines (50 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# W jaki sposób połączysz dwa słowniki w jeden nowy,
# tak aby oryginalne wersje słowników pozostały niezmienione?
# łączenie słowników przez unpacking (stara metoda)
user_defaults = {"theme": "light", "language": "pl", "font_size": 14}
user_settings = {"theme": "dark", "font_size": 18}
merged = {**user_defaults, **user_settings}
print(merged)
# {'theme': 'dark', 'language': 'pl', 'font_size': 18}
print(user_defaults)
# {'theme': 'light', 'language': 'pl', 'font_size': 14}
print(user_settings)
# {'theme': 'dark', 'font_size': 18}
# update() modyfikuje oryginał
user_defaults = {"theme": "light", "language": "pl", "font_size": 14}
user_settings = {"theme": "dark", "font_size": 18}
user_defaults.update(user_settings)
print(user_defaults)
# {'theme': 'dark', 'language': 'pl', 'font_size': 18}
# operator | dla słowników (Python 3.9+)
user_defaults = {"theme": "light", "language": "pl", "font_size": 14}
user_settings = {"theme": "dark", "font_size": 18}
merged = user_defaults | user_settings
print(merged)
# {'theme': 'dark', 'language': 'pl', 'font_size': 18}
print(user_defaults)
# {'theme': 'light', 'language': 'pl', 'font_size': 14}
print(user_settings)
# {'theme': 'dark', 'font_size': 18}
# operator |= (in-place)
user_defaults = {"theme": "light", "language": "pl", "font_size": 14}
user_settings = {"theme": "dark", "font_size": 18}
user_defaults |= user_settings
print(user_defaults)
# {'theme': 'dark', 'language': 'pl', 'font_size': 18}
# zestawienie starych i nowych metod
# TWORZENIE NOWEGO SŁOWNIKA (oryginały bez zmian):
# Stare: merged = {**d1, **d2}
# Nowe: merged = d1 | d2
# MODYFIKACJA W MIEJSCU (oryginał zmieniony):
# Stare: d1.update(d2)
# Nowe: d1 |= d2
# operator | dla setów
backend = {"Python", "Java", "Go"}
frontend = {"JavaScript", "TypeScript", "Python"}
all_languages = backend | frontend
print(all_languages)
# {'Python', 'Java', 'Go', 'JavaScript', 'TypeScript'}
backend |= frontend
print(backend)
# {'Python', 'Java', 'Go', 'JavaScript', 'TypeScript'}