Cómo comprobar si una lista contiene solo números en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo comprobar si una lista contiene solo números en Python. Esto implica definir listas numéricas, incluyendo listas de enteros, números de punto flotante y números mixtos. Crearás un archivo de Python llamado numeric_lists.py y usarás el editor VS Code para definir e imprimir estas listas en la consola.

El laboratorio te guía a través de la definición de listas de enteros, números de punto flotante y una mezcla de ambos, demostrando cómo crear e imprimir estas listas utilizando Python. Utilizarás la función print() para mostrar el contenido de cada lista, asegurándote de entender cómo trabajar con listas numéricas en Python.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/numeric_types -.-> lab-559527{{"Cómo comprobar si una lista contiene solo números en Python"}} python/conditional_statements -.-> lab-559527{{"Cómo comprobar si una lista contiene solo números en Python"}} python/lists -.-> lab-559527{{"Cómo comprobar si una lista contiene solo números en Python"}} python/build_in_functions -.-> lab-559527{{"Cómo comprobar si una lista contiene solo números en Python"}} python/data_collections -.-> lab-559527{{"Cómo comprobar si una lista contiene solo números en Python"}} end

Definir listas numéricas

En este paso, aprenderás cómo definir listas numéricas en Python. Una lista es una colección de elementos, y en este caso, nos centraremos en listas que contienen números. Las listas son una estructura de datos fundamental en Python y se utilizan para almacenar y manipular secuencias ordenadas de datos.

Primero, creemos un nuevo archivo de Python llamado numeric_lists.py en tu directorio ~/project utilizando el editor VS Code.

~/project/numeric_lists.py

Ahora, abre numeric_lists.py en el editor y agrega el siguiente código para definir una lista de enteros:

## Define a list of integers
integer_list = [1, 2, 3, 4, 5]

## Print the list to the console
print(integer_list)

Guarda el archivo. A continuación, abre una terminal en VS Code y navega hasta el directorio ~/project. Por defecto, ya deberías estar en este directorio. Ahora, ejecuta el script de Python utilizando el siguiente comando:

python numeric_lists.py

Deberías ver la siguiente salida:

[1, 2, 3, 4, 5]

Ahora, definamos una lista de números de punto flotante (números decimales):

Modifica el archivo numeric_lists.py para incluir lo siguiente:

## Define a list of floating-point numbers
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]

## Print the list to the console
print(float_list)

Guarda el archivo y ejecuta el script nuevamente:

python numeric_lists.py

Deberías ver la siguiente salida:

[1.0, 2.5, 3.7, 4.2, 5.9]

También puedes crear una lista que contenga una mezcla de enteros y números de punto flotante:

Modifica el archivo numeric_lists.py para incluir lo siguiente:

## Define a list of mixed numbers (integers and floats)
mixed_list = [1, 2.0, 3, 4.5, 5]

## Print the list to the console
print(mixed_list)

Guarda el archivo y ejecuta el script nuevamente:

python numeric_lists.py

Deberías ver la siguiente salida:

[1, 2.0, 3, 4.5, 5]

¡Felicidades! Has definido e impreso con éxito listas numéricas en Python. Este es un paso fundamental para trabajar con datos numéricos en Python.

Usar all() con isinstance()

En este paso, aprenderás cómo usar la función all() en combinación con la función isinstance() para comprobar si todos los elementos de una lista son de un tipo numérico específico. Esta es una técnica útil para validar datos y asegurarte de que tu código se comporte como se espera.

La función all() devuelve True si todos los elementos de un iterable (como una lista) son verdaderos. La función isinstance() comprueba si un objeto es una instancia de una clase o tipo especificado.

Modifiquemos el archivo numeric_lists.py que creaste en el paso anterior para incluir el siguiente código:

def check_if_all_numeric(data):
  """
  Check if all elements in the list are either integers or floats.
  """
  return all(isinstance(item, (int, float)) for item in data)

## Test cases
integer_list = [1, 2, 3, 4, 5]
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]
mixed_list = [1, 2.0, 3, 4.5, 5]
string_list = [1, 2, "hello", 4.5, 5]

print(f"Integer list is all numeric: {check_if_all_numeric(integer_list)}")
print(f"Float list is all numeric: {check_if_all_numeric(float_list)}")
print(f"Mixed list is all numeric: {check_if_all_numeric(mixed_list)}")
print(f"String list is all numeric: {check_if_all_numeric(string_list)}")

A continuación, se detalla el código:

  • Definimos una función check_if_all_numeric(data) que toma una lista como entrada.
  • Dentro de la función, usamos all() con una expresión generadora (isinstance(item, (int, float)) for item in data).
  • La expresión generadora itera a través de cada item en la lista data y comprueba si es una instancia de int o float utilizando isinstance().
  • all() devuelve True solo si todos los elementos de la lista son enteros o números de punto flotante; de lo contrario, devuelve False.
  • Luego probamos la función con diferentes listas e imprimimos los resultados.

Guarda el archivo numeric_lists.py y ejecútalo desde la terminal:

python numeric_lists.py

Deberías ver la siguiente salida:

Integer list is all numeric: True
Float list is all numeric: True
Mixed list is all numeric: True
String list is all numeric: False

Esta salida muestra que la función check_if_all_numeric() identifica correctamente si todos los elementos de una lista son numéricos. La lista de cadenas contiene una cadena, por lo que la función devuelve False.

Manejar listas vacías

En este paso, aprenderás cómo manejar listas vacías cuando uses las funciones all() y isinstance(). Una lista vacía es una lista que no contiene elementos. Es importante manejar correctamente las listas vacías para evitar un comportamiento inesperado en tu código.

Modifiquemos el archivo numeric_lists.py que creaste en los pasos anteriores para incluir una comprobación de listas vacías en la función check_if_all_numeric():

def check_if_all_numeric(data):
  """
  Check if all elements in the list are either integers or floats.
  Handle empty lists gracefully.
  """
  if not data:
    return True  ## An empty list can be considered as all numeric

  return all(isinstance(item, (int, float)) for item in data)

## Test cases
integer_list = [1, 2, 3, 4, 5]
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]
mixed_list = [1, 2.0, 3, 4.5, 5]
string_list = [1, 2, "hello", 4.5, 5]
empty_list = []

print(f"Integer list is all numeric: {check_if_all_numeric(integer_list)}")
print(f"Float list is all numeric: {check_if_all_numeric(float_list)}")
print(f"Mixed list is all numeric: {check_if_all_numeric(mixed_list)}")
print(f"String list is all numeric: {check_if_all_numeric(string_list)}")
print(f"Empty list is all numeric: {check_if_all_numeric(empty_list)}")

Esto es lo que hemos cambiado:

  • Agregamos una comprobación al principio de la función check_if_all_numeric(): if not data:. Esto comprueba si la lista está vacía.
  • Si la lista está vacía, devolvemos True. Esto se debe a que una lista vacía se puede considerar que cumple la condición de que todos sus elementos son numéricos (ya que no tiene elementos que no sean numéricos).
  • Agregamos un caso de prueba para una empty_list (lista vacía).

Guarda el archivo numeric_lists.py y ejecútalo desde la terminal:

python numeric_lists.py

Deberías ver la siguiente salida:

Integer list is all numeric: True
Float list is all numeric: True
Mixed list is all numeric: True
String list is all numeric: False
Empty list is all numeric: True

Como puedes ver, la función check_if_all_numeric() ahora maneja correctamente las listas vacías y devuelve True para ellas. Esto hace que tu código sea más robusto y menos propenso a errores cuando se trata de listas potencialmente vacías.

Resumen

En este laboratorio, el primer paso se centra en definir listas numéricas en Python, abarcando listas de enteros, números de punto flotante y tipos numéricos mixtos. El proceso implica crear un archivo de Python, numeric_lists.py, y llenarlo con definiciones de listas utilizando corchetes cuadrados y valores separados por comas. Luego, se utiliza la función print() para mostrar estas listas en la consola, lo que demuestra cómo crear y mostrar diversas listas numéricas.

El laboratorio enfatiza la estructura de datos fundamental de las listas en Python y su capacidad para almacenar secuencias ordenadas de datos numéricos. Al definir e imprimir diferentes tipos de listas numéricas, incluyendo enteros, números de punto flotante y una combinación de ambos, el laboratorio ofrece una introducción práctica al trabajo con datos numéricos dentro de listas de Python.