Presentacion que explica Tuplas, diccionarios y conjuntos
Ejercicio
Nota: deo suministrar un archivo con las provincias a ordenar
#crear 2 archivos a y b de
#10000 numeros
#ordenados
#y luego generar un tercero c que contenga la union de a y b;
#en los elemntos que se escriban en c debe figurar el nombre del archivo origen
# a (1,4,7)
# b (2,7,60)
# c (1 a,2 b,4 a,7 a,7 b,60 b)
#generar(cant,nombArc)
#archivo = open(nombArc,w)
#numero = 1
#while cant > 0:
# n=R.randint(1,10)
# if n < 3:
# archivo.write(numero)
# cant = cant - 1
# numero = numero + 1
def leerDesdeArchivo(nombreArchivo):
lista=[]
archivo = open(nombreArchivo,'r')
linea = archivo.readline().replace("\n","")
while linea != "":
linea = linea.split("," )
lista.append(linea)
linea = archivo.readline().replace("\n","")
archivo.close()
return lista
def mostrar(listaLoc):
x = ("","")
for x in listaLoc:
print (x[1])
print(x)
def crearArchivo(nombreArchivo,lista):
archivo = open(nombreArchivo,'w')
for n in lista:
archivo.write(str(n)+"\n")
archivo.close()
def main():
x = ("","")
listaLoc = leerDesdeArchivo("Localidades.csv")
# mostrar(listaLoc)
i = 0
while i < len(listaLoc):
nueva = []
ant = listaLoc[i][1]
while i < len(listaLoc) and ant == listaLoc[i][1]:
nueva.append(listaLoc[i][2])
i = i+1
crearArchivo(ant+".txt",nueva)
# crearArchivo("ordenados.txt",lista)
main()
Resultado:
Generara un txt por cada Provincia agrupando las localidades de cada una como muestra la figura

Ejercicio de apareo de archivos
"""
Abre dos archivos, los compara y los aparea
"""
import random as R
def creaArchivoOrdenado(cantidad,nombreArchivo = "C:\\Users\\ITMaster\\Desktop\\numeros.txt"):
archivo = open(nombreArchivo,'w')
numero = 1
while cantidad > 0:
n = R.randint(1,100)
if n < 80:
x = R.randint(0,3)
for i in range(x):
archivo.write(str(numero)+'\n')
archivo.write(str(numero)+'\n')
cantidad -=1
numero += 1
archivo.close()
def aparear():
arch1 = open("C:\\Users\\miUser\\Desktop\\numeros1.txt")
arch2 = open("C:\\Users\\miUser\\Desktop\\numeros2.txt")
arch3 = open("C:\\Users\\miUser\\Desktop\\apareado.txt",'w')
print(str(help))
lin1 = arch1.readline()
lin2 = arch2.readline()
while lin1 != "" and lin2 != "":
n1 = int(lin1)
n2 = int(lin2)
if n1 <= n2:
arch3.write(str(n1) + " a1\n")
lin1 = arch1.readline()
else:
arch3.write(str(n2) + " a2\n")
lin2 = arch2.readline()
while lin1 != "":
n1 = int(lin1)
arch3.write(str(n1) + " a1\n")
lin1 = arch1.readline()
while lin2 != "":
n2 = int(lin2)
arch3.write(str(n2) + " a2\n")
lin2 = arch2.readline()
arch1.close()
arch2.close()
arch3.close()
def main():
creaArchivoOrdenado(1000,"C:\\Users\\miUser\\Desktop\\numeros1.txt")
creaArchivoOrdenado(1000,"C:\\Users\\miser\\Desktop\\numeros2.txt")
aparear()
main()
Resultado:
Va a generar un archivo TXT llamado apareado.txt conteniendo los dos archivos numeros1.txt y numeros2.txt
Ejercicio Listas y apareo
"""
Crea dos listas
las ordena
y luego las aparea en una tercera
"""
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
5 43
43 37
37 36
45 43
43 37
45 43
lista1 [3, 10, 11, 17, 18, 21, 23, 24, 24, 24]
lista2 [4, 5, 9, 9, 12, 12, 12, 14, 15, 15, 17, 18, 18, 18, 19, 19, 20, 21, 23, 23]
lista3 [9, 9, 12, 12, 14, 15, 18, 18, 18, 23, 25, 26, 28, 28, 29, 33, 36, 37, 43, 45]