1
+ # Asignacion de variables en python
2
+ # En python los enteros, flotantes, cadenas y tuplas, sea signan por valor.
3
+ # Esto significa que cuando asignas una variable a otra, se crea una copia independiente del valor.
4
+
5
+ # Asignacion por valor
6
+ a = 10
7
+ b = a
8
+ print (f'a: { a } , b: { b } ' ) # 'b' recibe una copia de del valor de 'a'
9
+
10
+ # Modificamos b
11
+ b = 20
12
+ print (f'a:{ a } , b:{ b } ' ) # 'a' no se ve afectada ya que los enteros son inmutables.
13
+
14
+
15
+ # Asignacion por referencia
16
+ # En python las listas, diccionarios y conjuntos, se asignan por referencia.
17
+ # Esto significa que cuando asignas una variable a otra, ambas apuntan al mismo objeto en memoria.
18
+
19
+ lista_1 = [1 , 2 ,3 ]
20
+ lista_2 = lista_1
21
+ print (f'Lista 1: { lista_1 } , Lista 2: { lista_2 } ' )
22
+
23
+ # Modificamos la lista 2
24
+ lista_2 .append (4 )
25
+ print (f'Lista 1: { lista_1 } , Lista 2: { lista_2 } ' ) # Al modificar la lista 2, tambien se modifica la lista 1
26
+
27
+ # Crear una copia independiente de un objeto mutable
28
+ lista_1 = [1 , 2 ,3 ]
29
+ lista_2 = lista_1 .copy () # Lista 2 es una copia independiente de lista 1
30
+ print (f'Lista 1: { lista_1 } , Lista 2: { lista_2 } ' )
31
+
32
+ lista_2 .append (4 )
33
+ print (f'Lista 1: { lista_1 } , Lista 2: { lista_2 } ' ) # Lista 1 no se ve afectada por los cambios de lista 2
34
+
35
+
36
+ # Extra
37
+
38
+ # Función para intercambiar valores por valor
39
+ def intercambiar_por_valor (a , b ):
40
+ temp = a
41
+ a = b
42
+ b = temp
43
+ return a , b
44
+
45
+ x = 10
46
+ y = 20
47
+
48
+ nuevo_x , nuevo_y = intercambiar_por_valor (x , y )
49
+
50
+ print (f"Originales: x = { x } , y = { y } " )
51
+ print (f"Nuevos: nuevo_x = { nuevo_x } , nuevo_y = { nuevo_y } " )
52
+
53
+
54
+
55
+
56
+ # Función para intercambiar valores por referencia
57
+ def intercambiar_por_referencia (lista1 , lista2 ):
58
+ temp = lista1 [:]
59
+ lista1 [:] = lista2 [:]
60
+ lista2 [:] = temp
61
+ return lista1 , lista2
62
+
63
+ lista_a = [1 , 2 , 3 ]
64
+ lista_b = [4 , 5 , 6 ]
65
+
66
+ nueva_lista_a , nueva_lista_b = intercambiar_por_referencia (lista_a , lista_b )
67
+
68
+ print (f"Originales: lista_a = { lista_a } , lista_b = { lista_b } " )
69
+ print (f"Nuevas: nueva_lista_a = { nueva_lista_a } , nueva_lista_b = { nueva_lista_b } " )
0 commit comments