Y seguimos con las dudas

Marcos Sánchez Provencio rapto en arrakis.es
Sab Mayo 25 13:56:29 CEST 2002


El sáb, 25-05-2002 a las 13:37, Alfredo escribió:
> Marcos Sánchez Provencio wrote:
> > Pues ahí va mi versión. Creo que es sencilla de entender para
> > principiantes.
> > 
> > 
> > 
> > 
> > ------------------------------------------------------------------------
> > 
> > prefijos={}
> > 
> > for pref in '''606 608 609 616 619 620 626 629 630 636 639 646 649 650 659 
> >         660 669 676 679 680 686 689 690 696 699'''.split():
> >     prefijos[pref]='Movistar'
> > 
> > for pref in "600 607 610 617 627 666 667 670 677 678 687".split():
> >     prefijos[pref]='Vodafone'
> > 
> > for pref in "651 652 653 654 655 656 657 658".split():
> >     prefijos[pref]='Amena'
> > 
> > def mvlchk(numero):
> >     pref=numero[:3]
> >     try:
> >         return prefijos[pref]
> >     except KeyError:
> >         return "pues nada"
> >         
> > 
> > 
> 
> Sí, efectivamente es bastante sencillo, tomo nota de más maneras de 
> hacerlo :)).
> Ya sé que es básico pero, ¿podrías explicar en qué consiste el for? 
> ¿"setea la variable pref dándole el valor de detrás del in?
> Sólo quiero aclarar mis ideas :)

"651 652 653 654 655 656 657 658".split() es
['651', '652', '653', '654', '655', '656', '657', '658']
sólo que más rápido de escribir. El bucle for recorre la lista asignando
a la variable índice cada uno de los elementos de la lista, en orden, y
ejecutando el código contenido (marcado por su nivel de sangrado o
indentación). La variable pref va valiendo, sucesivamente, '651', '652',
etc. Para cada valor se ejecuta

prefijos[pref]='Amena'

que en este caso equivale a:
prefijos['651']='Amena'
prefijos['652']='Amena'
...

Al final queda que el diccionario prefijos vale:
{'600': 'Vodafone',
 '606': 'Movistar',
 '607': 'Vodafone',
 '608': 'Movistar',
 '609': 'Movistar',
 '610': 'Vodafone',
 '616': 'Movistar',
 '617': 'Vodafone',
 '619': 'Movistar',
 '620': 'Movistar',
 '626': 'Movistar',
 '627': 'Vodafone',
 '629': 'Movistar',
 '630': 'Movistar',
 '636': 'Movistar',
 '639': 'Movistar',
 '646': 'Movistar',
 '649': 'Movistar',
 '650': 'Movistar',
 '651': 'Amena',
 '652': 'Amena',
 '653': 'Amena',
 '654': 'Amena',
 '655': 'Amena',
 '656': 'Amena',
 '657': 'Amena',
 '658': 'Amena',
 '659': 'Movistar',
 '660': 'Movistar',
 '666': 'Vodafone',
 '667': 'Vodafone',
 '669': 'Movistar',
 '670': 'Vodafone',
 '676': 'Movistar',
 '677': 'Vodafone',
 '678': 'Vodafone',
 '679': 'Movistar',
 '680': 'Movistar',
 '686': 'Movistar',
 '687': 'Vodafone',
 '689': 'Movistar',
 '690': 'Movistar',
 '696': 'Movistar',
 '699': 'Movistar'}

y con este diccionario es inmediato sacar la compañía a partir del
prefijo.





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