[Python-es] funcion que recibe lista o funcion que recibe un elemento

Luis Garcia Merino lgmerino en yahoo.com
Lun Abr 11 10:27:58 CEST 2011


Buenos días,
yo haría una función que recibiese una lista... y cuando la llames con sólo una 
palabra pasas una lista con un elemento... porque una lista con un elemento, 
también es una lista ;)

Creo que es lo más general.


Aunque si te fijas en las funciones estándar de Python creo que lo más pythónico 
sería utilizar la solución de Andrey, sirva de ejemplo str.startswith(prefix[, 
start[, end]]):

>>> a="tobeornottobe"
>>> a.startswith("to")
True
>>> a.startswith(("something","to",))
True

¿Cómo lo hace? Supongo que internamente startswith hará algo parecido a lo que 
propone Andrey.






________________________________
De: Arturo Muñoz T. <agtugo en gmail.com>
Para: python-es en python.org
Enviado: lun,11 abril, 2011 10:48
Asunto: Re: [Python-es] funcion que recibe lista o funcion que recibe un 
elemento

Si me serviria ese codigo, pero mi duda sería mas bien, ¿qué sería mas 
general, mas simple o mas bello?.
Me ha pasado que escribo la función que recibe una lista de palabras, 
pero no me gusta del todo. Y luego escribo
para que solo reciba un palabra, no se decidirme por cual. Las dos me 
solucionan el problema. Pero...
mi balanza esta en 50% y 50%. Por un lado pienso que tener una función 
que solo recibe una palabra y usar
comprension de listas despues es mas general. Pero despues pienso que 
tener una funcion que recibe una lista
es mas general. Tal vez es una tontería mi duda.




El 11/04/2011 01:42 a.m., Andrey Antoukh escribió:
> def funcion(param):
>    if not isinstance(param, list):
>      param = [param]
>    for x in param:
>      #do...
>    retrurn loquesea...
>
>
> Algo asi te solucionaria el problema?
> Andrei.
>
>
> El día 11 de abril de 2011 10:35, "Arturo Muñoz T."<agtugo en gmail.com>  
>escribió:
>> Hola Chema,
>> mi duda sería mas bien desventajas y desventajas de por ejemplo usar
>> comprensión de listas
>>
>> lista_con_las_cosas_que_quiero = [ funcion(palabra) for palabra in
>> lista_de_palabras]
>> def funcion(palabra):
>>     #codigo que hace cosas
>>     return cosa_que_quiero
>>
>> o
>>
>> def funcion [lista_de palabras]
>> #codigo que hace cosas
>> return lista_con_las_cosas_que_quiero
>>
>>
>> es que no encuentro grandes diferencias y no se si es cuestion de estilo, o
>> hay una clara ventaja que
>> no puedo ver
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>
>

_______________________________________________
Python-es mailing list
Python-es en python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110411/3d423f7a/attachment.html>


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