TypeError: Unhashable Tipo: Slice en Python
-
TypeError: tipo no modificable: 'slice'
en Python -
Arreglar
TypeError: tipo no modificable: 'slice'
en Python - Conclusión
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 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.
LinkedInArtículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python