Inicio : Python para todos.


Python para todos

Es un curso diseñado para estudiantes e impacientes en el mundo de la programación. No existe un límite de edad ni se requiere de estudios previos para comenzar.

Copyright © 2022, Marco Polo Jácome Toss. Informática Interactiva, Lección 12. Operadores de comparación, copia superficial y profunda de variables.
Inicio : Python para todos.


Lección 12: Operadores de comparación, copia superficial y profunda de variables

  • Dificultad: Fácil.
  • Objetivo: Utilizar operadores de comparación en contextos aritméticos y emplear el módulo copy para realizar deepcopy, duplicando objetos de manera profunda.
Copyright © 2022, Marco Polo Jácome Toss. Informática Interactiva, Lección 12. Operadores de comparación, copia superficial y profunda de variables.
Inicio : Python para todos.


Operadores de comparación

En la tabla siguiente se muestra algunos operadores de comparación.

Operador Descripción Operador Descripción
x == y x es igual a y x!= y x no es igual a y
x > y x es mayor que y x <= y x es menor e igual que y
x < y x es menor que y x >= y x es mayor e igual que y

Ejemplo: 5 !=3 el resultado será True. Una forma sencilla de sacar los operadores mayor y menor es con la combinación de teclas ALT+60 (<), ALT+62 (>), ALT+61 (=)

Copyright © 2022, Marco Polo Jácome Toss. Informática Interactiva, Lección 12. Operadores de comparación, copia superficial y profunda de variables.
Inicio : Python para todos.


Ejemplo de Operadores de Comparación

Algunos ejemplos de estos operadores son:

Operador Resultado Descripción de la operación
-6 > 8 False -6 es mayor que 8
0 < -5 False 0 es menor que -5
0 == 0 True 0 es igual a 0
3 <= 3 True 3 es menor e igual que 3
2 >= 5 False 2 no es mayor e igual que 5
-1 > -5 True -1 es mayor que -5
0 > -5 True 0 es mayor que -5
Copyright © 2022, Marco Polo Jácome Toss. Informática Interactiva, Lección 12. Operadores de comparación, copia superficial y profunda de variables.
Inicio : Python para todos.


Identificador de objetos, función id()

Cuando se declara una variable, el intérprete le asigna un identificador único conocido como <<id>>, el cual corresponde a un número entero generado en cada ejecución. Para consultar este identificador, utilice la función id(). Es importante tener en cuenta que los identificadores varían en cada ejecución, por lo que no es posible obtener el mismo valor dos veces.

>>> a, b ,c = 10, 20, 30 
>>> [id(a), id(b)]
>>> [2992596845072, 2992596845392]

Si asignamos la variable a a la variable b el identificador se pasa a la variable b.

>>> b=a, id(b)
>>> 2992596845072
Copyright © 2022, Marco Polo Jácome Toss. Informática Interactiva, Lección 12. Operadores de comparación, copia superficial y profunda de variables.
Inicio : Python para todos.


Copia superficial, función copy()

La diferencia entre una copia superficial y una profunda es trascendental para objetos que se componen de otros objetos (listas, diccionarios, conjuntos o instancias de clase).

Una copia superficial de este tipo de objetos se crea un nuevo objeto y después, en lo posible, se insertan las referencias de los objetos contenidos en el original.

>>> import copy
>>> lista_a=[1, 2, 3, 4, 5]
>>> lista_b=[lista_a, 6, 7, 8]
>>> lista_c=copy.copy(lista_b)
>>> #La lista_c y lista_b son iguales,  [[1, 2, 3, 4, 5], 6, 7, 8]
Copyright © 2022, Marco Polo Jácome Toss. Informática Interactiva, Lección 12. Operadores de comparación, copia superficial y profunda de variables.
Inicio : Python para todos.


Copia superficial, función copy()

Al obtener los identificadores (id) de las listas a, b y c, se puede observar que al realizar una copia superficial, el id de la lista original se conserva en la copia (por ejemplo, 2363630461440). Esto indica que una copia superficial no es completamente independiente del objeto original, como se muestra en el siguiente bloque de código:

>>> import copy
>>> lista_a=[1, 2, 3, 4, 5]
>>> lista_b=[lista_a, 6, 7, 8]
>>> lista_c=copy.copy(lista_b)
>>> #Las listas b y c son iguales,  [[1, 2, 3, 4, 5], 6, 7, 8]
>>> [id(lista_a), id(lista_b), id(lista_c), id(lista_b[0]), id(lista_c[0])]
>>> [2363630461440, 2363661566016, 2363630461504, 2363630461440, 2363630461440]

Para copias superficiales puede usar también: list(), dict(), set().

Copyright © 2022, Marco Polo Jácome Toss. Informática Interactiva, Lección 12. Operadores de comparación, copia superficial y profunda de variables.
Inicio : Python para todos.


Copia profunda, función deepcopy()

En una copia profunda se incorporan objetos contenidos en el original de forma recursiva.

>>> import copy
>>> lista_a=[1, 2, 3, 4, 5]
>>> lista_b=[lista_a, 6, 7, 8]
>>> lista_c=copy.copy(lista_b)
>>> lista_d=copy.deepcopy(lista_b)
>>> #Las listas b, c y d son iguales,  [[1, 2, 3, 4, 5], 6, 7, 8]
>>> [id(lista_a), id(lista_b), id(lista_c), id(lista_b[0]), id(lista_c[0])]
>>> [2363630461440, 2363661566016, 2363630461504, 2363630461440, 2363630461440]
>>> id(lista_d[0])
>>> 2363660184512
Copyright © 2022, Marco Polo Jácome Toss. Informática Interactiva, Lección 12. Operadores de comparación, copia superficial y profunda de variables.