Supongamos que tengo una lista en Python que contiene muchas palabras. Ahora quiero imprimir elementos en la lista en función de una condición, que tengo que tomar de la entrada. Por ejemplo, quiero todos los elementos que comienzan con 'a' a veces, o elementos que terminan con 'l'.

Entonces, quiero un método aplicable para ejecutar este programa:

a=['','apple','ball','cat']
condition = input()
for i in a :
     if condition:
          print i

Donde condición es una expresión y necesito un programa para analizarlo como una expresión en lugar de una cadena.

1
Sriraj Vysyaraju 30 sep. 2019 a las 08:34

3 respuestas

La mejor respuesta

¡Sí tu puedes! Use la biblioteca de Python RegEx para compilar la cadena y estará listo.

import re
a = ['', 'apple','nike', 'cat']
expression = input()
r = re.compile(expression)
print(expression)
for ain in a:
    if(re.findall(r,ain)):
        print(ain)
1
Aparna Maurya 30 sep. 2019 a las 05:58

Se puede hacer de esta manera:

  1. Cree una función que evalúe la condición y devuelva True o Falso si pasa o falla.

  2. En el uso del bucle for llame a esta función con la entrada dada.

Código

def condition_function(argument, condition):
      # check condition for argument here

      # put code to check the condition true ore not
      # result is true or false indication argument satisfy the condition

      if result is True:
               return True
      else:
           return False


a=['','apple','ball','cat']
condition = input()
for i in a :
     if conditions_function(i, condition):
           print i
1
sahasrara62 30 sep. 2019 a las 16:16

Puede usar el método str.startswith (letter):

a=['','apple','ball','cat']
condition = input()
for i in a :
     if i.startswith("a") or i.endswith("i"):
          print i

Además, ¿para qué sirve la entrada de "condición"?

0
Gugu72 30 sep. 2019 a las 05:56
58161984