top of page

Operadores

Insertar elementos

Para insertar un elemento k en una posición i, podemos hacer uso de la función insert(i,k).

La función insert (i,k) agrega un elemento k en la posición i y desplaza hacia adelante todos los valores (incluido el que estaba en la posición i).

 

Ejemplo.

             #insertar un valor

      Lista=[] #primero se crea una lista vacía

      n=10     # tamaño de la lista

      for i in range (n) :

          Lista.append(i)   #se inicializa con los valores de 0 a 9

     

      print(Lista)

      Lista.insert(3,"Esto no estaba aqui")

      print(Lista)

      #salida

      >>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

      >>[0, 1, 2, 'Esto no estaba aquí', 3, 4, 5, 6, 7, 8, 9]

 

 

Eliminar elementos

Para eliminar uno o mas elementos de una lista se usara la palabra reservada del, que eliminar un elemento y re-ordena la lista para que no queden espacios (si no, simplemente usaríamos Lista[i]=[] para dejar un espacio vacío, pero no es la idea).

 

Sintaxis:

del Lista[i]  # elimina el elemento en la posición i

del Lista[i:f]# elimina los elementos desde la posición i hasta la f

 

Ejemplo:

 

#eliminar un elemento de una lista

Lista =[]  #se crea la lista vacía

for i in range (8): # lista de 8 elementos

    Lista.append('Element' + str(i+1)) #se colocan elementos en la lista

 

print ("El tamaño de la lista es: ", len(Lista))# Lista original //#"Len" retorna el tamaño de una lista

print (" ".join(Lista))

del Lista[len(Lista)-1] #Borra el ultimo elemento de la lista

 

print("El nuevo tamaño de la lista es: ",len(Lista) )  #podemos ver que la lista disminuye su tamaño

print(" ".join(Lista))# El último elemento no esta

 

#eliminar varios elementos

del Lista[0:3]

print("El nuevo tamaño de la lista es: ",len(Lista) )  #el tamaño disminuye en 3

#salida

>>El tamaño de la lista es:  8

Element1 Element2 Element3 Element4 Element5 Element6 Element7 Element8

 

El nuevo tamaño de la lista es:  7

Element1 Element2 Element3 Element4 Element5 Element6 Element7

 

El nuevo tamaño de la lista es:  4

Element4 Element5 Element6 Element7

 

Copiar una lista:

Python permite hacer copias de una a lista a otra de una manera sencilla; supongamos que que L es una lista que contiene n elementos y LN es una variable variable cualquiera. Bastara con ejecutar la siguiente instrucción para copiar los elementos de L a LN y volver LN una lista:

 

                                                                       LN = L  #se copia L en LN

Ejemplo:

            #copiar una lista    

            import random                                                                     #Librería para generar números aleatorios

            Lista=[]

            for i in range (0,10):

                Lista.append(random.randint(0,100))                              # la lista se llena con números aleatorios

            Lcopy=Lista                                                                         #se hace una "copia" de "Lista"

 

            print("Lista original")

            print(str(Lista).replace(","," "))                                #replace cambia un carácter por otro (solo funciona con strings)

            print("Lista copiada")

            print(str(Lcopy).replace(","," "))

 

            #Salida

             >>Lista original

                  [27  10  51  51  32  48  50  65  97  13]

                  Lista copiada

                  [27  10  51  51  32  48  50  65  97  13]

 

Hacer una copia de esta forma nos trae grandes problemas  si la idea de crear una copia es no modificar la lista original, veamos

  

            Lcopy=Lista                                                                      #se hace una "copia" de "Lista"

            print("Lista original")

            print(str(Lista).replace(","," "))  

 

            Lcopy[0:5]=[0]                                                                   #solo se modifica la copia

 

            print("Copia despues de modificarse")

            print(str(Lcopy).replace(","," "))

 

            print("se imprime de nuevo la lista original ")

            print(str (Lista).replace(","," "))

           

            #salida

                   >>Lista original

                        [89  78  72  16  44  34  47  31  96  77]

 

                        Copia después de modificarse

                        [0  34  47  31  96  77]

 

                        se imprime de nuevo la lista original

                        [0  34  47  31  96  77]  # ¡La lista original se modifica también!

 

Como vimos modificar una copia de una lista modifica también la copia original(Lo que no resulta muy útil en muchos caso, ya que no queremos modificar la lista original), esto sucede por que lo que en realidad hacemos no es copiar una lista en otra, si no copiar sus direcciones de memoria, por lo tanto modificar una va modificar la otra.

 

Para solucionar este problema tenemos que usar sub-listas, así.

 

 Lcopy=Lista[:] # Colocar solo “ : ” copia todos los elementos (Una sublista de todos los elementos)

 De esta manera se estan copiando los elementos que estén en “Lista” y no las direcciones de memoria, por lo cual, si se modifica la copia no se va modificar la lista original, veamos:

 

            Lcopy=Lista                                                                      #se hace una "copia" de "Lista"

            print("Lista original")

            print(str(Lista).replace(","," "))  

 

            Lcopy[0:5]=[0]                                                                  #solo se modifica la copia

 

            print("Copia despues de modificarse")

            print(str(Lcopy).replace(","," "))

 

            print("se imprime de nuevo la lista original ")

            print(str (Lista).replace(","," "))

 

                        #salida

            >>>     Lista original

                        [53  48  19  93  28  48  21  51  51  88]

 

                        Copia después de modificarse

                        [0  48  21  51  51  88]

 

                        se imprime de nuevo la lista original

                        [53  48  19  93  28  48  21  51  51  88]

 Recorrer una lista y buscar un valor.

La expresión “for x in Lista:”, nos permite generar un ciclo que se ejecuta tantas veces como elementos tenga nuestra lista, esto resulta muy útil en el caso en que queramos ordenar la lista, o solo buscar algún valor determinado y efectuar alguna operación. Debemos tener en cuenta que esta instrucción almacenará en “x” el valor de lista en la posición que se encuentre de acuerdo a la iteración del ciclo, es decir, si es la iteración 1, se guarda  en “x” lo que tenga lista en su primera posición (La posición 0)

 

Existe una forma indirecta de recorrer una lista y es usando la expresión for i in range (0,len(Lista)), que es un ciclo que va desde 0 hasta el final de las lista.

 

“x  in Lista” también nos sirve para saber si un valor se encuentra dentro de una lista,Para ellos solo debemos usar una condición simple (if x in Lista)

 

Ejemplo 1:

 

 

#Buscar coincidencias entre listas

import random                                                  # Librería para generar números aleatorios

Lista=[]                                                             # Lista vacía

l=[]                                                                    # Lista vacía

count=0                                                            # contador

 

for i in range (0,10):                                         #se genera una lista de 10 elementos

            Lista.append(random.randint(0,20))    # se llena con números aleatorios

    l.append(random.randint(0,20))   

 

#primero imprimimos ambas listas 

for x in:                                                           # forma directa de recorrer una lista

             print (x, end=" ")

print()                                                              # imprime un salto de línea

for y in l:                                                         #esto es una alternativa de impresión de una lista

             print(y, end=" ")

print()

 

for i in range (0,len(Lista)):                           #forma indirecta de recorrer una lista

    if l[i] in Lista:

       count+=1                                               # si hay coincidencia se aumenta el contador

print("Las listas coinciden en %d " %count, "valores")

Ejemplo 2:

#Ordenamiento de una lista por inserción

import random

Lista=[]

for i in range (0,10):

            Lista.append(random.randint(0,10))      #se llena la lista con números enteros aleatorios

print("Lista desordenada")

print(str(Lista).replace(","," "))                           #se imprime la lista desordenada

 

for i in range (1,len(Lista)):                                #comienzo desde el segundo elemento

            key=Lista[i]                                            #almaceno este valor ya que puede ser remplazado

            j=i-1

            #Compruebo si el número en la posición anterior a la actual es mayor que el número en la             posición actual

            while (j>=0 and Lista[j]>key):

            #si es mayor los intercambio

            Lista[j+1]=Lista[j]

            Lista[j]=key

            j=j-1                                                      #como el elemento 5,por ejemplo, puede estar entre el 1                                                                          y el 2, tenemos que hacer la misma comprobación con                                                                            todos elementos hacia atrás

 

            #se puede imprimir la lista aquí para ver un paso a paso

 

print("Lista ordenada")

print(str(Lista).replace(","," "))                          #se imprime la lista ordenada

By:Informatica1-udea

bottom of page