Clase Numero 07 – Listas

Ejercicios Clase 07

"""
Creacion de lista, uso de 'àppend` y muestra x pantalla

"""

def main():
    lista = [] #creacion de lista vacia
    
#    Le agregamos (append) datos a la lista

    lista.append("Juan")
    lista.append(12345)
    lista.append(["abc",12])
    lista.append(("Juan",lista[0])) # va a mostrar "Juan" y "Juan" ya que
                                    # lista [0] esta en el indice 0 = Juan
    lista.append(9)

    print(lista)
    
    
main()

Resultado

>>> %Run majuma021_listas_intro.py
['Juan', 12345, ['abc', 12], ('Juan', 'Juan'), 9]
>>> 


"""
Creacion de lista, uso de 'àppend` y muestra x pantalla
Ahora ordenamos en columnas

"""

def main():
    lista = [] #creacion de lista vacia
    
#    Le agregamos (append) datos a la lista

    lista.append("Juan")
    lista.append(12345)
    lista.append(["abc",12])
    lista.append(("Juan",lista[0])) # va a mostrar "Juan" y "Juan" ya que
                                    # lista [0] esta en el indice 0 = Juan
    lista.append(9)

    print(lista)
    
    
    for i in range(len(lista)): # loop para recorrer la lista
        print(lista[i]) # muestro lista como columna
  
main()

Resultado

>>> %Run majuma021_listas_intro.py
['Juan', 12345, ['abc', 12], ('Juan', 'Juan'), 9]
Juan
12345
['abc', 12]
('Juan', 'Juan')
9
>>> 

"""
Creacion de lista, uso de 'àppend` y muestra x pantalla
Ahora ordenamos en columnas
y mostramos TIPO de datos en la lista

"""

def main():
    lista = [] #creacion de lista vacia
    
#    Le agregamos (append) datos a la lista

    lista.append("Juan")
    lista.append(12345)
    lista.append(["abc",12])
    lista.append(("Juan",lista[0])) # va a mostrar "Juan" y "Juan" ya que
                                    # lista [0] esta en el indice 0 = Juan
    lista.append(9)

    print(lista)
    
    
    for i in range(len(lista)): # loop para recorrer la lista
        print(lista[i]) # muestro lista como columna

    for x in lista: # loop para recorrer lista
        print(x,type(x)) # muestra que tipo de dato es cada uno de la lista
    
main()

Resultado

>>> %Run majuma021_listas_intro.py
['Juan', 12345, ['abc', 12], ('Juan', 'Juan'), 9]
Juan
12345
['abc', 12]
('Juan', 'Juan')
9
Juan <class 'str'>
12345 <class 'int'>
['abc', 12] <class 'list'>
('Juan', 'Juan') <class 'tuple'>
9 <class 'int'>
>>> 

Nota: si sao la primer “x” en print (x, type (x)), mostrara SOLO el tipo de dato y no el dato de la lista, si bien la reorre, no le pido que la muestre

>>> %Run majuma021_listas_intro.py
['Juan', 12345, ['abc', 12], ('Juan', 'Juan'), 9]
Juan
12345
['abc', 12]
('Juan', 'Juan')
9
<class 'str'>
<class 'int'>
<class 'list'>
<class 'tuple'>
<class 'int'>
>>> 

Otro ejemplo de listas, ordenar y aparear

"""
Creaion de lsitas, muestra x pantalla en dos columnas
creaion de otra lista
ordenrlas
aparear
"""

import random as R

def lista1MasLista2(l1,l2):
    sale = []
    
    t1 = len(l1)
    t2 = len(l2)
    i=0#l1
    j=0#l2
    while i < t1 and j < t2:
        sale.append(l1[i]  +  l2[j])
        i+=1
        j+=1

    while i < t1:
        sale.append(l1[i])
        i += 1
    while j < t2:
        sale.append(l2[j])
        j += 1

    return sale


def ordenar(lista):
    for i in range(0,len(lista)-1):
        for d in range(i+1,len(lista)):
            print(lista[i],lista[d])
            if lista[i] > lista[d]:
                
                aux      = lista[i]
                lista[i] = lista[d]
                lista[d] = aux


def crearLista(largo,desde,hasta):

    lista = []

    for i in range(largo):
        lista.append(R.randint(desde,hasta))

    return lista

def apareo(l1,l2):
    sale = []
    
    t1 = len(l1)
    t2 = len(l2)
    i=0#l1
    j=0#l2
    while i < t1 and j < t2:
        if l1[i] <= l2[j]:
            sale.append((l1[i],"l1"))
            i+=1
        else:
            if l2[j] < l1[i]:
                sale.append((l2[j],"l2"))
                j+=1
 
    while i < t1:
        sale.append((l1[i],"l1"))
        i += 1
    while j < t2:
        sale.append((l2[j],"l2"))
        j += 1
    return sale    

def main():
    lista1 = crearLista(10,1,25)
    lista2 = crearLista(20,1,25)
    lista3 = lista1MasLista2(lista1,lista2)
    print("lista1",lista1)
    print("lista2",lista2)
    print("lista3",lista3)
    ordenar(lista1)
    ordenar(lista2)
    ordenar(lista3)
    print("lista1",lista1)
    print("lista2",lista2)
    print("lista3",lista3)

    print("apareada: ",apareo(lista1,apareo(lista2,lista3)))

    

main()

Resultado

Resumen
27 27
43 42
42 36
36 32
32 27
43 42
42 36
36 32
43 42
42 36
43 42
lista1 [2, 8, 9, 10, 17, 20, 21, 21, 24, 24]
lista2 [2, 6, 9, 12, 12, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 24, 24, 24, 24, 25]
lista3 [9, 12, 16, 18, 19, 20, 22, 22, 22, 24, 24, 24, 25, 26, 27, 27, 32, 36, 42, 43]

Ejercicio de CREACION de archivos

"""
Creacion de dos archivos; uno numeros.txt y otro ordenados.txt
se geenran con numeros random, se reorren y ordenan
CADA ve que se corre el programa se DESTRUYE el archivo numeros.txt
y se vuelve a rear "pisando" al anterior
"""

import random as R


def crearUnArchivoRandom(nombreArchivo,tamanio,desde,hasta):
    archivo = open(nombreArchivo,'w')#ABRIMOS PARA ESCRITURA (CREAR UN ARCH. NUEVO)

    for i in range(tamanio):
        archivo.write(str(R.randint(desde,hasta)) + "\n")

    archivo.close()


def ordenar(lista):
    for i in range(0,len(lista)-1):
        for d in range(i+1,len(lista)):
            
            if lista[i] > lista[d]:
                
                aux      = lista[i]
                lista[i] = lista[d]
                lista[d] = aux

def leerDesdeArchivo(nombreArchivo):
    lista=[]
    archivo = open(nombreArchivo,'r')

    linea = archivo.readline()
    while linea != "":
        lista.append(int(linea))
        linea = archivo.readline()
    archivo.close()
    return lista



def crearArchivo(nombreArchivo,lista):

    archivo = open(nombreArchivo,'w')

    for n in lista:
        archivo.write(str(n)+"\n")
    archivo.close()
    
def sort(lista):
    izquierda = []
    centro = []
    derecha = []
    if len(lista) > 1:
        pivote = lista[0]
        for i in lista:
            if i < pivote:
                izquierda.append(i)
            elif i == pivote:
                centro.append(i)
            elif i > pivote:
                derecha.append(i)
        #print(izquierda+["-"]+centro+["-"]+derecha)
        return sort(izquierda)+centro+sort(derecha)
    else:
        return lista

def main():

    crearUnArchivoRandom("numeros.txt",100000,1,100000)
    lista = leerDesdeArchivo("numeros.txt")
    #sort(lista)
    lista=sorted(lista)
    crearArchivo("ordenados.txt",lista)



main()

Leave a Reply

Your email address will not be published. Required fields are marked *