TypeError: Unhashable Type: Slice trong Python

Bài viết đăng tại: https://programming.laptrinh.site

Cắt lát là một kỹ thuật rất phổ biến trong Python. Nó cho phép chúng tôi trích xuất dữ liệu từ một chuỗi nhất định như chuỗi, danh sách, bộ dữ liệu, v.v., bằng cách sử dụng chỉ mục của các phần tử.

Dưới đây là một ví dụ rất đơn giản về việc cắt lát.

 lst = [ 2 , 5 , 6 , 7 , 3 , 1 ] print (lst[ 0 : 2 ])

Đầu ra:

[2, 5]

Ví dụ trên trích xuất một phần của danh sách bằng cách sử dụng kỹ thuật cắt lát. Lưu ý việc sử dụng các chỉ mục.

TypeError: unhashable type: 'slice' trong Python

TypeError xuất hiện trong Python khi chúng tôi cố gắng thực hiện một số thao tác không được hỗ trợ trên một loại dữ liệu nhất định. TypeError cũng có thể xuất hiện trong khi cắt nếu chúng ta cố gắng sử dụng kỹ thuật này trên các loại dữ liệu không được hỗ trợ như từ điển, DataFrame, v.v.

Ví dụ:

 d = { 'a' : 10 , 'b' : 11 } d[ 0 : 2 ]

Đầu ra:

TypeError: unhashable type: 'slice'

Lưu ý unhashable type: 'slice' được đưa ra trong ví dụ trên.

Từ điển sử dụng hàm băm để tìm các giá trị bằng cách sử dụng các khóa tương ứng của chúng. Nó không lưu trữ các chỉ mục của các giá trị.

Không thể băm ở đây có nghĩa là thao tác cắt không thể băm được và không hoạt động với từ điển.

Hướng dẫn này sẽ trình bày cách giải quyết lỗi unhashable type: 'slice' của Python.

Sửa TypeError: unhashable type: 'slice' trong Python

Cách khắc phục cơ bản nhất là sử dụng trình tự hỗ trợ cắt lát. Chúng bao gồm danh sách, chuỗi, từ điển, bộ dữ liệu và các chuỗi được hỗ trợ khác.

Chúng tôi có thể chuyển đổi từ điển không hỗ trợ cắt thành danh sách và sửa lỗi này.

Đối với một từ điển, chúng ta có thể sử dụng các values()keys() để lấy một đối tượng xem các giá trị và khóa trong từ điển. Đối tượng này có thể được chuyển đổi thành danh sách hỗ trợ cắt bằng cách sử dụng hàm list() .

Xem mã dưới đây.

 d = { 'a' : 10 , 'b' : 11 } print ( list (d . values())[ 0 : 2 ]) print ( list (d . keys())[ 0 : 2 ])

Đầu ra:

 [10, 11] ['a', 'b']

Ví dụ trên chuyển đổi từ điển thành hai danh sách khóa và giá trị. Chúng tôi thực hiện cắt trên các danh sách này.

Chúng ta cũng có thể sử dụng hàm items() để trả về một đối tượng dạng xem của các cặp khóa và giá trị trong danh sách các bộ dữ liệu.

Xem mã dưới đây.

 d = { 'a' : 10 , 'b' : 11 } print ( list (d . items())[ 0 : 2 ])

Đầu ra:

[('a', 10), ('b', 11)]

Phần kết luận

Hướng dẫn này trình bày unhashable type: 'slice' thể xóa được trong Python và cách khắc phục. Lần đầu tiên chúng tôi thảo luận về kỹ thuật cắt lát trong Python.

Chúng tôi đã chứng minh cách các từ điển và lý do đằng sau chúng không hỗ trợ kỹ thuật này. Cách khắc phục liên quan đến việc sử dụng các hàm khác nhau như items() , keys()values() có thể tạo danh sách bằng cách sử dụng từ điển, danh sách này có thể được sử dụng thêm để cắt.

URL Link

https://laptrinh.site/typeerror-unhashable-type-slice-trong-python/

Viết bởi Duy Mạnh. Đã đăng ký bản quyền tác giả tại Creativecommons và DMCA