Manipular varios objetos integrados (built-in) de Python

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 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 manipular varios objetos incorporados de Python. Python ofrece una variedad de tipos de datos incorporados, como números, cadenas (strings), listas y diccionarios. Dominar estos objetos es crucial para todo programador de Python.

Además, a través de ejercicios prácticos, practicarás operaciones esenciales de Python y aprenderás a trabajar de manera efectiva con números, cadenas (strings), listas y diccionarios de Python.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/dictionaries("Dictionaries") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/numeric_types -.-> lab-132391{{"Manipular varios objetos integrados (built-in) de Python"}} python/strings -.-> lab-132391{{"Manipular varios objetos integrados (built-in) de Python"}} python/for_loops -.-> lab-132391{{"Manipular varios objetos integrados (built-in) de Python"}} python/lists -.-> lab-132391{{"Manipular varios objetos integrados (built-in) de Python"}} python/dictionaries -.-> lab-132391{{"Manipular varios objetos integrados (built-in) de Python"}} python/standard_libraries -.-> lab-132391{{"Manipular varios objetos integrados (built-in) de Python"}} python/data_collections -.-> lab-132391{{"Manipular varios objetos integrados (built-in) de Python"}} end

Trabajando con números en Python

Python ofrece un sólido soporte para operaciones numéricas. En programación, los números son tipos de datos fundamentales utilizados para realizar cálculos y representar cantidades. Este paso te introducirá a la manipulación básica de números en Python, lo cual es esencial para realizar diversas operaciones matemáticas en tus programas.

Operaciones aritméticas básicas

Para comenzar a trabajar con números en Python, primero debes abrir una shell interactiva de Python. Puedes hacer esto escribiendo python3 en tu terminal. La shell interactiva de Python te permite escribir y ejecutar código Python línea por línea, lo cual es excelente para probar y aprender.

python3

Una vez que estés en la shell interactiva de Python, puedes probar algunas operaciones aritméticas básicas. Python sigue las reglas matemáticas estándar para la aritmética, como el orden de las operaciones (PEMDAS: Paréntesis, Exponentes, Multiplicación y División, Suma y Resta).

>>> 3 + 4*5    ## La multiplicación tiene mayor precedencia que la suma, por lo que se calcula 4*5 primero y luego se suma a 3
23
>>> 23.45 / 1e-02    ## Aquí se utiliza la notación científica para 0.01. Se realiza la división para obtener el resultado
2345.0

División entera

Python 3 maneja la división de manera diferente a Python 2. Comprender estas diferencias es crucial para evitar resultados inesperados en tu código.

>>> 7 / 4    ## En Python 3, la división regular devuelve un número de punto flotante (float), incluso si el resultado podría ser un entero
1.75
>>> 7 // 4   ## La división entera (trunca la parte decimal) te da el cociente como un entero
1

Métodos de números

Los números en Python tienen varios métodos útiles que a menudo se pasan por alto. Estos métodos pueden simplificar operaciones numéricas complejas y conversiones. Exploremos algunos de ellos:

>>> x = 1172.5
>>> x.as_integer_ratio()    ## Este método representa el número de punto flotante como una fracción, lo cual puede ser útil para algunos cálculos matemáticos
(2345, 2)
>>> x.is_integer()    ## Comprueba si el número de punto flotante es un valor entero. En este caso, 1172.5 no es un entero, por lo que devuelve False
False

>>> y = 12345
>>> y.numerator    ## Para los enteros, el numerador es el número mismo
12345
>>> y.denominator    ## Para los enteros, el denominador siempre es 1
1
>>> y.bit_length()    ## Este método te dice el número de bits necesarios para representar el número en binario, lo cual puede ser útil en operaciones bit a bit
14

Estos métodos son particularmente útiles cuando necesitas realizar operaciones numéricas específicas o conversiones. Pueden ahorrarte tiempo y hacer que tu código sea más eficiente.

Cuando hayas terminado de explorar la shell interactiva de Python, puedes salir de ella escribiendo:

>>> exit()

Trabajando con cadenas (strings) en Python

Las cadenas (strings) son uno de los tipos de datos más comúnmente utilizados en Python. Se utilizan para representar texto y pueden contener letras, números y símbolos. En este paso, exploraremos diversas operaciones con cadenas, que son habilidades esenciales para trabajar con datos de texto en Python.

Creación y definición de cadenas

Para comenzar a trabajar con cadenas en Python, primero debemos abrir una shell interactiva de Python. Esta shell nos permite escribir y ejecutar código Python línea por línea, lo cual es excelente para aprender y probar. Abre una shell interactiva de Python nuevamente utilizando el siguiente comando:

python3

Una vez que la shell esté abierta, podemos definir una cadena. En este ejemplo, crearemos una cadena que contiene símbolos de acciones. Una cadena en Python se puede definir encerrando texto entre comillas simples (') o comillas dobles ("). Así es como definimos nuestra cadena:

>>> symbols = 'AAPL IBM MSFT YHOO SCO'
>>> symbols
'AAPL IBM MSFT YHOO SCO'

Ahora hemos creado una variable de cadena llamada symbols y le hemos asignado un valor. Cuando escribimos el nombre de la variable y presionamos enter, Python muestra el valor de la cadena.

Acceso a caracteres y subcadenas

En Python, las cadenas se pueden indexar para acceder a caracteres individuales. La indexación comienza en 0, lo que significa que el primer carácter de una cadena tiene un índice de 0, el segundo tiene un índice de 1, y así sucesivamente. También se admite la indexación negativa, donde -1 se refiere al último carácter, -2 se refiere al penúltimo carácter, y así sucesivamente.

Veamos cómo podemos acceder a caracteres individuales en nuestra cadena symbols:

>>> symbols[0]    ## Primer carácter
'A'
>>> symbols[1]    ## Segundo carácter
'A'
>>> symbols[2]    ## Tercer carácter
'P'
>>> symbols[-1]   ## Último carácter
'O'
>>> symbols[-2]   ## Penúltimo carácter
'C'

También podemos extraer subcadenas utilizando el corte (slicing). El corte nos permite obtener una parte de la cadena especificando un índice de inicio y un índice de fin. La sintaxis para el corte es string[start:end], donde la subcadena incluye caracteres desde el índice de inicio hasta (pero sin incluir) el índice de fin.

>>> symbols[:4]    ## Primeros 4 caracteres
'AAPL'
>>> symbols[-3:]   ## Últimos 3 caracteres
'SCO'
>>> symbols[5:8]   ## Caracteres desde el índice 5 hasta el 7
'IBM'

Inmutabilidad de las cadenas

Las cadenas en Python son inmutables, lo que significa que una vez que se crea una cadena, no se pueden cambiar sus caracteres individuales. Si intentas modificar un carácter en una cadena, Python generará un error.

Intentemos cambiar el primer carácter de nuestra cadena symbols:

>>> symbols[0] = 'a'    ## Esto causará un error

Deberías ver un error como este:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

Este error indica que no podemos asignar un nuevo valor a un carácter individual en una cadena porque las cadenas son inmutables.

Concatenación de cadenas

Aunque no podemos modificar las cadenas directamente, podemos crear nuevas cadenas a través de la concatenación. La concatenación significa unir dos o más cadenas. En Python, podemos usar el operador + para concatenar cadenas.

>>> symbols += ' GOOG'    ## Agregar un nuevo símbolo
>>> symbols
'AAPL IBM MSFT YHOO SCO GOOG'

>>> symbols = 'HPQ ' + symbols    ## Agregar un nuevo símbolo al principio
>>> symbols
'HPQ AAPL IBM MSFT YHOO SCO GOOG'

Es importante recordar que estas operaciones crean nuevas cadenas en lugar de modificar la cadena original. La cadena original permanece sin cambios, y se crea una nueva cadena con el valor combinado.

Comprobación de subcadenas

Para comprobar si una subcadena existe dentro de una cadena, podemos usar el operador in. El operador in devuelve True si se encuentra la subcadena en la cadena y False en caso contrario.

>>> 'IBM' in symbols
True
>>> 'AA' in symbols
True
>>> 'CAT' in symbols
False

Observa que 'AA' devuelve True porque se encuentra dentro de "AAPL". Esta es una forma útil de buscar texto específico dentro de una cadena más grande.

Métodos de cadenas

Las cadenas en Python vienen con numerosos métodos incorporados que nos permiten realizar diversas operaciones en cadenas. Estos métodos son funciones asociadas con el objeto de cadena y se pueden llamar utilizando la notación de punto (string.method()).

>>> symbols.lower()    ## Convertir a minúsculas
'hpq aapl ibm msft yhoo sco goog'

>>> symbols    ## La cadena original permanece sin cambios
'HPQ AAPL IBM MSFT YHOO SCO GOOG'

>>> lowersyms = symbols.lower()    ## Guardar el resultado en una nueva variable
>>> lowersyms
'hpq aapl ibm msft yhoo sco goog'

>>> symbols.find('MSFT')    ## Encontrar el índice de inicio de una subcadena
13
>>> symbols[13:17]    ## Verificar la subcadena en esa posición
'MSFT'

>>> symbols = symbols.replace('SCO','')    ## Reemplazar una subcadena
>>> symbols
'HPQ AAPL IBM MSFT YHOO  GOOG'

Cuando hayas terminado de experimentar, puedes salir de la shell de Python utilizando el siguiente comando:

>>> exit()

Trabajando con listas en Python

Las listas son un tipo de estructura de datos en Python. Una estructura de datos es una forma de organizar y almacenar datos para que se puedan utilizar de manera eficiente. Las listas son muy versátiles porque pueden almacenar diferentes tipos de elementos, como números, cadenas (strings) o incluso otras listas. En este paso, aprenderemos cómo realizar diversas operaciones en listas.

Creación de listas a partir de cadenas

Para comenzar a trabajar con listas en Python, primero debemos abrir una sesión interactiva de Python. Esto es como un entorno especial donde podemos escribir y ejecutar código Python de inmediato. Para iniciar esta sesión, escribe el siguiente comando en tu terminal:

python3

Una vez que estés en la sesión interactiva de Python, crearemos una lista a partir de una cadena. Una cadena es simplemente una secuencia de caracteres. Definiremos una cadena que contiene algunos símbolos de acciones separados por espacios. Luego, convertiremos esta cadena en una lista. Cada símbolo de acción se convertirá en un elemento de la lista.

>>> symbols = 'HPQ AAPL IBM MSFT YHOO GOOG'
>>> symlist = symbols.split()    ## Dividir la cadena en espacios en blanco
>>> symlist
['HPQ', 'AAPL', 'IBM', 'MSFT', 'YHOO', 'GOOG']

El método split() se utiliza para dividir la cadena en partes siempre que haya un espacio en blanco. Cada parte se convierte entonces en un elemento de la nueva lista.

Acceso y modificación de elementos de la lista

Al igual que las cadenas, las listas admiten la indexación. La indexación significa que podemos acceder a elementos individuales de la lista por su posición. En Python, el primer elemento de una lista tiene un índice de 0, el segundo tiene un índice de 1, y así sucesivamente. También podemos usar la indexación negativa para acceder a elementos desde el final de la lista. El último elemento tiene un índice de -1, el penúltimo tiene un índice de -2, y así sucesivamente.

A diferencia de las cadenas, los elementos de la lista se pueden modificar. Esto significa que podemos cambiar el valor de un elemento de la lista.

>>> symlist[0]    ## Primer elemento
'HPQ'
>>> symlist[1]    ## Segundo elemento
'AAPL'
>>> symlist[-1]   ## Último elemento
'GOOG'
>>> symlist[-2]   ## Penúltimo elemento
'YHOO'

>>> symlist[2] = 'AIG'    ## Reemplazar el tercer elemento
>>> symlist
['HPQ', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG']

Iteración a través de listas

A menudo, necesitamos realizar la misma operación en cada elemento de una lista. Podemos usar un bucle for para hacer esto. Un bucle for nos permite recorrer cada elemento de la lista uno por uno y realizar una acción específica en él.

>>> for s in symlist:
...     print('s =', s)
...

Cuando ejecutes este código, verás cada elemento de la lista impreso con la etiqueta s =.

s = HPQ
s = AAPL
s = AIG
s = MSFT
s = YHOO
s = GOOG

Comprobación de pertenencia

A veces, necesitamos comprobar si un elemento en particular existe en una lista. Podemos usar el operador in para hacer esto. El operador in devuelve True si el elemento está en la lista y False si no lo está.

>>> 'AIG' in symlist
True
>>> 'AA' in symlist
False
>>> 'CAT' in symlist
False

Adición y eliminación de elementos

Las listas tienen métodos incorporados que nos permiten agregar y eliminar elementos. El método append() agrega un elemento al final de la lista. El método insert() inserta un elemento en una posición específica de la lista. El método remove() elimina un elemento de la lista por su valor.

>>> symlist.append('RHT')    ## Agregar un elemento al final
>>> symlist
['HPQ', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG', 'RHT']

>>> symlist.insert(1, 'AA')    ## Insertar en una posición específica
>>> symlist
['HPQ', 'AA', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG', 'RHT']

>>> symlist.remove('MSFT')    ## Eliminar por valor
>>> symlist
['HPQ', 'AA', 'AAPL', 'AIG', 'YHOO', 'GOOG', 'RHT']

Si intentas eliminar un elemento que no existe en la lista, Python generará un error.

>>> symlist.remove('MSFT')

Verás un mensaje de error como este:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

También podemos encontrar la posición de un elemento en la lista utilizando el método index().

>>> symlist.index('YHOO')
4
>>> symlist[4]    ## Verificar el elemento en esa posición
'YHOO'

Ordenación de listas

Las listas se pueden ordenar in situ, lo que significa que la lista original se modifica. Podemos ordenar una lista alfabéticamente o en orden inverso.

>>> symlist.sort()    ## Ordenar alfabéticamente
>>> symlist
['AA', 'AAPL', 'AIG', 'GOOG', 'HPQ', 'RHT', 'YHOO']

>>> symlist.sort(reverse=True)    ## Ordenar en orden inverso
>>> symlist
['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA']

Listas anidadas

Las listas pueden contener cualquier tipo de objeto, incluyendo otras listas. Esto se llama una lista anidada.

>>> nums = [101, 102, 103]
>>> items = [symlist, nums]
>>> items
[['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA'], [101, 102, 103]]

Para acceder a elementos en una lista anidada, usamos múltiples índices. El primer índice selecciona el elemento de la lista exterior, y el segundo índice selecciona el elemento de la lista interior.

>>> items[0]    ## Primer elemento (la lista symlist)
['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA']
>>> items[0][1]    ## Segundo elemento en symlist
'RHT'
>>> items[0][1][2]    ## Tercer carácter en 'RHT'
'T'
>>> items[1]    ## Segundo elemento (la lista nums)
[101, 102, 103]
>>> items[1][1]    ## Segundo elemento en nums
102

Cuando hayas terminado de trabajar en la sesión interactiva de Python, puedes salir de ella escribiendo:

>>> exit()

Trabajando con diccionarios en Python

En Python, los diccionarios son una estructura de datos fundamental. Son almacenes de pares clave - valor, lo que significa que te permiten asociar un valor (el valor) con otro (la clave). Esto es extremadamente útil cuando se trabaja con datos que tienen relaciones naturales de clave - valor. Por ejemplo, podrías querer asociar el nombre de una persona (la clave) con su edad (el valor), o como veremos en este laboratorio, asociar símbolos de acciones (claves) con sus precios (valores).

Creación y acceso a diccionarios

Comencemos abriendo una nueva sesión interactiva de Python. Esto es como entrar en un entorno especial donde puedes escribir y ejecutar código Python línea por línea. Para iniciar esta sesión, abre tu terminal y escribe el siguiente comando:

python3

Una vez que estés en la sesión interactiva de Python, puedes crear un diccionario. En nuestro caso, crearemos un diccionario que asocia símbolos de acciones con sus precios. Así es como se hace:

>>> prices = {'IBM': 91.1, 'GOOG': 490.1, 'AAPL': 312.23}
>>> prices
{'IBM': 91.1, 'GOOG': 490.1, 'AAPL': 312.23}

En la primera línea, estamos creando un diccionario llamado prices y asignándole algunos pares clave - valor. Las claves son los símbolos de acciones (IBM, GOOG, AAPL), y los valores son los precios correspondientes. La segunda línea simplemente nos muestra el contenido del diccionario prices.

Ahora, veamos cómo acceder y modificar los valores en el diccionario utilizando las claves.

>>> prices['IBM']    ## Acceder al valor para la clave 'IBM'
91.1

>>> prices['IBM'] = 123.45    ## Actualizar un valor existente
>>> prices
{'IBM': 123.45, 'GOOG': 490.1, 'AAPL': 312.23}

>>> prices['HPQ'] = 26.15    ## Agregar un nuevo par clave - valor
>>> prices
{'IBM': 123.45, 'GOOG': 490.1, 'AAPL': 312.23, 'HPQ': 26.15}

En la primera línea, estamos accediendo al valor asociado con la clave IBM. En la segunda y tercera líneas, estamos actualizando el valor para la clave IBM y luego agregando un nuevo par clave - valor (HPQ con un precio de 26.15).

Obtener las claves de un diccionario

A veces, es posible que desees obtener una lista de todas las claves de un diccionario. Hay un par de formas de hacer esto.

>>> list(prices)    ## Convertir las claves del diccionario en una lista
['IBM', 'GOOG', 'AAPL', 'HPQ']

Aquí, estamos usando la función list() para convertir las claves del diccionario prices en una lista.

También puedes usar el método keys(), que devuelve un objeto especial llamado dict_keys.

>>> prices.keys()    ## Devuelve un objeto dict_keys
dict_keys(['IBM', 'GOOG', 'AAPL', 'HPQ'])

Obtener los valores de un diccionario

De manera similar, es posible que desees obtener todos los valores de un diccionario. Puedes usar el método values() para esto.

>>> prices.values()    ## Devuelve un objeto dict_values
dict_values([123.45, 490.1, 312.23, 26.15])

Este método devuelve un objeto dict_values que contiene todos los valores del diccionario prices.

Eliminar elementos

Si deseas eliminar un par clave - valor de un diccionario, puedes usar la palabra clave del.

>>> del prices['AAPL']    ## Eliminar la entrada 'AAPL'
>>> prices
{'IBM': 123.45, 'GOOG': 490.1, 'HPQ': 26.15}

Aquí, estamos eliminando el par clave - valor con la clave AAPL del diccionario prices.

Comprobar si una clave existe

Para comprobar si una clave existe en un diccionario, puedes usar el operador in.

>>> 'IBM' in prices
True
>>> 'AAPL' in prices
False

El operador in devuelve True si la clave existe en el diccionario y False en caso contrario.

Métodos de diccionarios

Los diccionarios tienen varios métodos útiles. Veamos un par de ellos.

>>> prices.get('MSFT', 0)    ## Obtener el valor o un valor predeterminado si la clave no existe
0
>>> prices.get('IBM', 0)
123.45

>>> prices.update({'MSFT': 25.0, 'GOOG': 500.0})    ## Actualizar múltiples valores
>>> prices
{'IBM': 123.45, 'GOOG': 500.0, 'HPQ': 26.15, 'MSFT': 25.0}

El método get() intenta obtener el valor asociado con una clave. Si la clave no existe, devuelve un valor predeterminado (en este caso, 0). El método update() se utiliza para actualizar múltiples pares clave - valor en el diccionario a la vez.

Cuando hayas terminado de trabajar en la sesión interactiva de Python, puedes salir de ella escribiendo:

>>> exit()

Resumen

En este laboratorio, has aprendido cómo trabajar con varios objetos integrados (built-in) de Python. En concreto, has dominado las operaciones en números de Python y sus métodos, manipulado cadenas (strings) a través de la indexación, el corte (slicing) y funciones integradas, creado y modificado listas, incluyendo la ordenación y el manejo de estructuras anidadas, y utilizado diccionarios para el almacenamiento y recuperación de pares clave - valor.

Estas habilidades fundamentales son la piedra angular de la programación en Python más avanzada. La práctica regular de estas operaciones mejorará tu familiaridad con los tipos de datos integrados de Python.