listas de cadenas

Sonia siosss en ono.com
Dom Ago 24 20:15:45 CEST 2003


hola!
he intentado hacer el programilla, pero algo falla pq ni me compila bien .
os lo paso a ver si veis algo raro

os adjunto el enunciado completo tb:




def longitudRuta(ciudades,tramos):
  tram=[]  #lista con los recorridos de 2 en 2 ciudades
  rec=[]  # lista con las 2 ciudades de cada tramo
  km=[]  # km de cada tramo
  suma_km=[] #suma de los km de cada recorrido (resultado)

  for i in range(0,len(ciudades)):
    tram.append(ciudades[i:i+2]
    # tram= [['castellon','valencia'],['valencia','alicante']]

  for elem in range(0,len(tramos)):
    rec.append(tramos[0:2])
    km.append(tramos[2])
  #rec=[['alicante','valencia'],['castellon','valencia']]
  #km=[166,65]

  for trayecto in tram:
    for tray in range(0,len(rec)):
      if tram[trayecto==rec[tray]:
        suma_km= suma_km +km[tray]
      else:
        print 'none'
  print suma_km #166+65



dist=[]
dist.append(['alicante','valencia',166])
dist.append(['castellon','valencia',65])
ruta1=['castellon','valencia','alicante']
print 'longitud ruta1:' , longitudRuta(ruta1,dist)



ENUNCIADO:

Implementa una funcion denominada longitudRuta q, dada una ruta formada por
una lista de nombres de ciudades y otra lista con las distancias entre pares
de ciudades, devuelva la longitud total de dicha ruta.

La funcion longitudRuta recibe como 1er parametro una lista de cadenas(cada
cadena sera el nombre de una ciudad, por lo q tomaremos la lista como una
ruta de viaje) y como segundo parametro una lista de tramos.

Cada tramo sera, a su vez, una lista con el formato [cadena, cadena, entero]
(las dos cadenas son nombres de ciudades, y el entero, la distanciaen km
entre ellas).

Si la funcion longitudLista no puede calcular la longitud de la ruta debido
a q en el segundo parametro falta alguna distancia entre ciudades q es
necesaria, entonces debe devolver 'None' , para indicar q la longitud de la
ruta no puede calcularse.


ejemplo:

dist=[]
dist.append(['alicante','valencia',166])
dist.append(['castellon','valencia',65])
dist.append(['tarragona','castellon',186])
ruta1=['castellon','valencia','alicante']
ruta2=['castellon','alicante','valencia']
print 'longitud ruta1:' , longitudRuta(ruta1,dist)
print 'longitud ruta2:' , longitudRuta(ruta2,dist)

al ejecutarlo, se escribira por pantalla:

longitud ruta1: 231
longitud ruta2: None

* cuando busques la distancia entre 2 cuidades se tienen q comprobar dos
posibilidades: si existe  ciudad1-ciudad2  y ciudad2-ciudad1

* La segunda ruta no puede calcularse pq en la lista dist  del ejemplo no
aparece distancia 'castellon'-'alicante' ni 'alicante'-'castellon'



----- Original Message -----
From: Marcos Sánchez Provencio <rapto en arrakis.es>
To: La lista de python en castellano <python-es en aditel.org>
Sent: Sunday, August 24, 2003 4:24 AM
Subject: Re: [Python-es] listas de cadenas


> Sonia wrote:
>
> > holas!
> >
> > como se inicializa una lista con el formato [cadena, cadena, entero] ??
> >
> > en el programa principal hago este ejemplo:
> >
> > dist=[]
> > dist.append(['alicante','valencia',166])
> > dist.append(['castellon','valencia',65])
> > dist.append(['tarragona','castellon',186])
> > ruta1=['castellon','valencia','alicante']
> > ruta2=['castellon','alicante','valencia']
> > print 'longitud ruta1:' , longitudRuta(ruta1,dist)
> > print 'longitud ruta2:' , longitudRuta(ruta2,dist)
> >
> > y lo q quiero saber es, para hacer una funcion(se trata como veis de q
> > dada una ruta y una dstancia, ver si en l lista dist, existen esos
> > recorridos paa poder calcular el recorido completo(suma de km)
> >
> > en el ejemplo anterior, al ejecutarlo, se escribira por pantalla:
> >
> > longitud ruta1: 231
> > longitud ruta2: None #pq no estan esos recorridos
> >
> >
> > mi duda es , para hacer la funcion, como inicializo esa lista dist???
> >
> > las rutas son listas normales, pero lo otro? como lo hago para
> > inicializarlo y poder recorrerlo y eso?
> >
> > gracias!!!
> >
>
> ¿Te lo aclara esto?
> dist=[]
> dist.append(['alicante','valencia',166])
> dist.append(['castellon','valencia',65])
> dist.append(['tarragona','castellon',186])
> for elem in dist:
>     print elem
>     print elem[0:2]
>     print elem[2]
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es




Más información sobre la lista de distribución Python-es