Ce face hash()
Dicționarele și mulțimile găsesc rapid cheile folosind valoarea lor hash. Doar obiectele imutabile (numere, texte, tupluri de imutabile, frozenset) au hash; listele, dicționarele și mulțimile nu au, de aceea nu pot fi chei.
Valoarea hash a unui text se schimbă de la o rulare la alta a programului (protecție împotriva unor atacuri). Nu o salva și nu o folosi ca identificator permanent; pentru asta există modulul hashlib.
Parametri
| Parametru | Descriere |
|---|---|
obiect |
Un obiect imutabil. |
Ce returnează
Un număr întreg.
Exemple
Exemplul 1: Obiecte cu și fără hash
print(hash(42), hash(True), hash((1, 2)) == hash((1, 2)))
print(hash("Ana") == hash("Ana"))
try:
hash([1, 2])
except TypeError as e:
print("Eroare:", e)
Rezultat
42 1 True
True
Eroare: unhashable type: 'list'
Greșeli frecvente
- Salvezi
hash(text)într-un fișier sau într-o bază de date. La următoarea rulare valoarea va fi alta; foloseștehashlib.sha256().
Comenzi înrudite
dict (dicționare): Dicționarul păstrează perechi cheie: valoare și găsește rapid valoarea după cheie.set (mulțimi): Mulțimea este o colecție fără duplicate și fără ordine, utilă pentru valori unice și operații de reuniune sau intersecție.frozenset(): O mulțime imutabilă, care poate fi cheie de dicționar sau element al altei mulțimi.id(): Returnează identitatea unui obiect: un număr unic cât timp obiectul există.