Funciones para datos
Python incluye varias funciones predefinidas para manipular sus tipos de datos predefinidos.
Identificar elemento - type()
El tipo de datos de una variable o estructura puede consultarse con la función type()
:
Enumerar elementos - enumerate()
La función enumerate()
permite enumerar los elementos de una lista,
convirtiéndolos a tupla.
Require el uso de la función list()
para recuperar la data.
lista = [1, "hola", True]
objeto = enumerate(lista) # tipo 'enumerate'
enumerados = list(objeto) # conversion a lista
# da '[(0, 1), (1, 'hola'), (2, True)]'
El índice inicial es 0
salvo indicación contraria.
El valor elegido como índice inicial se pasa como segundo valor de entrada para la función enumerate()
:
lista = [1, "hola", True]
indice_inicial = 27
objeto = enumerate(lista, indice_inicial ) # tipo 'enumerate'
enumerados = list(objeto) # conversion a lista
# da '[(27, 1), (28, 'hola'), (29, True)]'
El resultado final es una lista de tuplas que incluyen cada una un par indice-elemento. Ambos datos pueden extraerse fácilmente con la cláusula for
:
for indice, elemento in enumerados:
print(f"Indice: {indice}; elemento: {elemento}")
# texto en pantalla
# 'Indice: 27; elemento: 1'
# 'Indice: 28; elemento: hola'
# 'Indice: 29; elemento: True'
Más sobre la cláusula for
: control de flujo
Ordenamiento de datos - sorted()
La función sorted()
ordena los elementos de listas y diccionarios, por defecto de manera ascendente / alfabética.
lista_ordenada = sorted( lista ) # orden ascendente
lista_ordenada = sorted( lista, reverse=True ) # orden descendente
lista_ordenada = sorted( lista, key = funcion_ordenamiento ) # criterio de ordenamiento definido por función
sort()
de las listas, de hecho tiene los mismos argumentos de entrada (reverse
y key
). El resultado es una lista con los elementos.
Esta función también sirve para ordenar diccionarios:
lista_ordenada = sorted( diccionario ) # orden ascendente
lista_ordenada = sorted( diccionario, reverse=True ) # orden descendente
lista_ordenada = sorted( diccionario, key = funcion_ordenamiento ) # criterio de ordenamiento definido por función
La función presupone que el ordenamiento es por clave. Si en cambio se busca ordenar los elementos por valores hay que usar el método values()
:
lista_ordenada = sorted( diccionario.values() ) # orden ascendente
lista_ordenada = sorted( diccionario.values(), reverse=True ) # orden descendente
lista_ordenada = sorted( diccionario.values(), key = funcion_ordenamiento ) # criterio de ordenamiento definido por función
El resultado en estos casos es una lista de tuplas con los pares clave-valor.
Conversion desde string - eval()
Para poder evaluar una variable str
que representa sintácticamente un tipo de datos (una lista, un diccionario, etc.)
se usa la función eval()
Algunos ejemplos sencillos:
texto = '{"valor": 3}'
data = eval(texto)
type(data) # da <class 'dict'>
Esta función es útil, por ejemplo, para interpretar un string de datos procedente de un archivo de texto o de una página web.