blob: 6f9e1434023dc2f4416508422b08d9566c179ba3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
```
|