Primeiro de tudo, minha resposta à pergunta que você fez originalmente
P: Como descubro se uma variável está definida em um ponto do meu código?
R: Leia o arquivo de origem até ver uma linha em que essa variável está definida.
Além disso, você deu um exemplo de código de que existem várias permutações bastante pitônicas. Você está procurando uma maneira de varrer uma sequência em busca de elementos que correspondam a uma condição, então, aqui estão algumas soluções:
def findFirstMatch(sequence):
for value in sequence:
if matchCondition(value):
return value
raise LookupError("Could not find match in sequence")
Claramente, neste exemplo, você pode substituir o raise
por um return None
dependendo do que deseja alcançar.
Se você quisesse tudo que correspondesse à condição, poderia fazer o seguinte:
def findAllMatches(sequence):
matches = []
for value in sequence:
if matchCondition(value):
matches.append(value)
return matches
Existe outra maneira de fazer isso com yield
que eu não vou me incomodar em mostrar a você, porque é bastante complicado na maneira como funciona.
Além disso, existe uma maneira única de conseguir isso:
all_matches = [value for value in sequence if matchCondition(value)]