Đi đến nội dung
Ngoại lệ PythonLỗi
TypeError: unhashable type

TypeError: unhashable type

Một đối tượng mutable được dùng ở nơi yêu cầu đối tượng hashable (immutable), chẳng hạn làm khóa dictionary hoặc phần tử set.

python

Nguyên nhân gây ra lỗi này

Bạn cố dùng list, dict, set, hoặc đối tượng mutable khác làm khóa dictionary hoặc phần tử set. Chỉ các đối tượng hashable (immutable) mới có thể làm khóa: string, số, tuple (của các phần tử hashable), frozenset.

Cách sửa

Chuyển list thành tuple: tuple(my_list). Chuyển set thành frozenset: frozenset(my_set). Với dict, dùng frozenset của các item hoặc chuyển thành dạng hashable. Dùng cấu trúc dữ liệu immutable làm khóa.

Ví dụ

{[1, 2]: "value"}  # TypeError: unhashable type: 'list'
Tài liệu chính thức

Mã lỗi liên quan