summaryrefslogtreecommitdiff
path: root/PYTHON/hash() - хэширование.md
diff options
context:
space:
mode:
Diffstat (limited to 'PYTHON/hash() - хэширование.md')
-rw-r--r--PYTHON/hash() - хэширование.md19
1 files changed, 19 insertions, 0 deletions
diff --git a/PYTHON/hash() - хэширование.md b/PYTHON/hash() - хэширование.md
new file mode 100644
index 0000000..6f9e143
--- /dev/null
+++ b/PYTHON/hash() - хэширование.md
@@ -0,0 +1,19 @@
+Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш.
+
+Для хэширования значений есть встроенная (её не надо устанавливать или импортировать) функция hash(). Используется в основном для сравнения разных объектов — сравнивать хэши легче и выгоднее.
+
+Однако изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выдаст ошибку.
+
+Кстати, есть две пасхалки. Хэш бесконечности равен первым цифрам числа Пи, а хэш Not a Number равен нулю.
+
+А ещё бывают коллизии: например, хэши чисел -1 и -2 одинаковы.
+
+```python
+hash(42) # 42
+hash(1) # 1
+hash((1, 2, 3, 4)) # 590899387183067792
+hash('hi') # 2211653411235407625
+hash(float('inf')) # 314159
+hash(float 'nan' )) # 0
+hash(-1) == hash(-2) # True
+```