Author Topic: python - ordenar lista de listas.  (Read 19 times)

Daniel.py

  • Newbie
  • *
  • Posts: 3
  • Karma: 0
    • View Profile
python - ordenar lista de listas.
« on: Abril 12, 2018, 08:56:20 am »
Hola gente, ¿como están? no estoy seguro que el enunciado sea el correcto, ya veremos. el caso es que no logro encontrar nada parecido en la web concerniente a lo que necesito hacer.-
Bueno dejo parte del código para que puedan orientarse:

Code: [Select]
def listado(cantidad):
archivo = abrir_lectura()
if archivo:
while True:
limpiar_pantalla()
print(f'\n ========== Listado de traducciones ==========')

while True:
try:
inicio = int(input(f'\n Ingrese código para INICIAR listado\n'
f' mínimo 1 máximo {cantidad}..........:'))
except:
input('\n Debe ingresar un número entero\n\t'
'Pulse [Enter] para continuar...')
else:
break

if inicio < 1 or inicio > cantidad:
input(f'\n Por favor preste atención a los limites\n'
  f' mínimo 1 máximo {cantidad}\n\t'
  'Pulse [Enter] para continuar...')
else:
break

while True:
while True:
try:
final = int(input(f'\n Ingrese código para FINALIZAR listado\n'
f' mínimo {inicio} máximo {cantidad}..........:'))
except:
input('\n Debe ingresar un número entero\n\t'
'Pulse [Enter] para continuar...')
else:
break

if final < inicio or final > cantidad:
input(f'\n Por favor preste atención a los limites\n'
  f' mínimo {inicio} máximo {cantidad}\n\t'
  'Pulse [Enter] para continuar...')
else:
break


resultado = []
for linea in archivo:
tmp = linea.split(sep=',')
if int(tmp[0]) >= inicio and int(tmp[0]) <= final:
resultado.append(linea)

mostrar(resultado)
archivo.close()
input('\n Pulse [Enter] para continuar...')
limpiar_pantalla()
else:
input("\n No se pudo abrir el archivo...\n"
  " Pulse [Enter] para finalizar...")

Code: [Select]
def mostrar(_resultado):
_ancho_cpo_uno,ancho_cpo_uno = 0,0
cabecera = ['Código', 'Inglés', 'Español' ]
for linea in _resultado:
resultado = linea.split(sep=',')
_ancho_cpo_uno = len(resultado[1])
if _ancho_cpo_uno > ancho_cpo_uno:
ancho_cpo_uno = _ancho_cpo_uno

print('\n --------------------------------')
print(f'\n{cabecera[0]:>7}',f' {cabecera[1]:<{ancho_cpo_uno}} ',f'{cabecera[2]:<27}')
for linea in _resultado:
linea = linea.replace('\n', '')
encontrados = linea.split(sep=',')
print(f'{encontrados[0]:>7}',f' {encontrados[1]:{ancho_cpo_uno}} ',f'{encontrados[2]:<27}')
print('\n --------------------------------')
ordenar(_resultado)


Code: [Select]
def ordenar(resultado):
while True:
print('\n ========== Menú ordenar ==========')
opc = input('\n 1 - Código\n 2 - Inglés\n 3 - Español\n 4 - Regresar\n '
'\n Ingrese opción...:')
if opc >= '1' and opc <= '4':
if opc == '4':
break
else:
input(f'\n Ingrese opción entre "1" y "4"...'
'\n\t Pulse [Enter] para continuar...')

for linea in resultado:
separar = linea.split(sep=',')
print(f'{separar[0]}  {separar[1]}  {separar[2]}')

Quote
1,Home,Casa hogar domicilio
2,Chair,Silla
3,Moon,Luna
4,Sun,Sol
5,Night,Noche
6,Self,Yo Uno mismo
7,Table,Mesa
8,Knife,Cuchillo
9,Spoon,Cuchara
10,Fork,Tenedor
11,While,Mientras que
12,Gathers,Reune Reunir
13,Could,Podria
14,Put,Poner
15,Place,Lugar
16,Square,Plaza Lugar publico
17,They,Ellos Ellas
18,Right,Derecho Tener razon
19,Started,Comenzar Empezar Iniciar
20,Dozens,Docena
21,Killed,Matar Aniquilar Terminar una actividad
22,Apparent,Aparente Libre de dudas
23,Chemical,Quimico
24,Attack,Atacar Agredir Embestir
25,Near,Cerca A la mano Aproximarse
26,Rescue,Rescate Rescatar
27,Worker,Trabajador Obrero

Si me orientan les estaré muy agradecido, es un tema(las bases de datos) que me interesa muchísimo.-
Daniel

 

ey