TypeError: Unhashable Tipo: Slice en Python

Manav Narula 21 junio 2023
  1. TypeError: tipo no modificable: 'slice' en Python
  2. Arreglar TypeError: tipo no modificable: 'slice' en Python
  3. Conclusión
TypeError: Unhashable Tipo: Slice en Python

Rebanar es una técnica muy común en Python. Nos permite extraer datos de una secuencia dada como una cadena, lista, tupla y más, utilizando los índices de los elementos.

A continuación se muestra un ejemplo muy simple de corte.

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

Producción :

[2, 5]

El ejemplo anterior extrae una parte de la lista utilizando la técnica de corte. Observe el uso de los índices.

TypeError: tipo no modificable: 'slice' en Python

Se genera un TypeError en Python cuando intentamos realizar alguna operación no admitida en un tipo de datos determinado. También se puede generar un TypeError durante el corte si intentamos usar esta técnica en tipos de datos no compatibles como un diccionario, DataFrame y más.

Por ejemplo:

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

Producción :

TypeError: unhashable type: 'slice'

Tenga en cuenta el error unhashable type: 'slice' que aparece en el ejemplo anterior.

Los diccionarios usan una función hash para encontrar valores usando sus respectivas claves. No almacena los índices de los valores.

Unhashable aquí significa que la operación de corte no es hashable y no funciona con diccionarios.

Este tutorial demostrará cómo resolver el error tipo inhashable: 'segmento' de Python.

Arreglar TypeError: tipo no modificable: 'slice' en Python

La solución más básica es usar secuencias que admitan el corte. Estos incluyen listas, cadenas, diccionarios, tuplas y otras secuencias admitidas.

Podemos convertir el diccionario que no admite el corte en una lista y corregir este error.

Para un diccionario, podemos usar values() y keys() para obtener un objeto de vista de los valores y claves en el diccionario. Este objeto se puede convertir en una lista que admita el corte utilizando la función list().

Vea el código a continuación.

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

Producción :

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

El ejemplo anterior convierte el diccionario en dos listas de claves y valores. Realizamos el corte en estas listas.

También podemos usar la función items() para devolver un objeto de vista de los pares clave y valor en una lista de tuplas.

Vea el código a continuación.

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

Producción :

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

Conclusión

Este tutorial demuestra el error unhashable type: 'slice' en Python y cómo solucionarlo. Primero discutimos la técnica de corte en Python.

Demostramos cómo los diccionarios y la razón detrás de ellos no son compatibles con esta técnica. La solución implica el uso de diferentes funciones como elementos(), claves() y valores() que pueden crear una lista usando el diccionario, que puede usarse más para dividir.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python Error