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