Como saber si un parametro es una secuencia

Chema Cortés py en ch3m4.org
Jue Dic 16 11:46:18 CET 2004


El Jueves, 16 de Diciembre de 2004 11:24, Pablo Rey Sobral escribió:
> On Thu, 16 Dec 2004 10:49:30 +0100, Andres Moya
>
> <Andres.Moya en hispalinux.es> wrote:
> > Hola a todo el mundo.
> >
> > Esto lo he visto resuelto alguna vez, pero ahora no soy capaz de
> > encontrarlo. ¿Cuál es la mejor manera de saber si una variable contiene
> > una secuencia o un valor escalar? O sea, saber si tengo que iterar sobre
> > ella o simplemente coger su valor.
>
> La mejor es preguntar de que tipo es la variable:
> >>> x  = 2
> >>> type (x)
>
> <type 'int'>
>
> >>> x = [2]
> >>> type (x)
>
> <type 'list'>
>
> >>> x = (2,)
> >>> type (x)
>
> <type 'tuple'>
>
> >>> x = {'2':2}
> >>> type (x)
>
> <type 'dict'>
>
> para saber si la tienes que iterar
>
> if (type(x) == list) or (type(x) == (tuple) or type(x) == dict):

No es ésta la mejor forma de comprobar el tipo, ya que fallaría si el tipo de 
'x' fuera un tipo derivado de estas clases. Para comprobar tipos hay que 
utilizar siempre 'issubclass':

if issubclass(x, (list, tuple, dict) ):
  ...

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: application/pgp-signature
Size: 189 bytes
Desc: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20041216/d17683ee/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
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