Her şeyden önce, aslında sorduğunuz soruya cevabım
S: Bir değişkenin kodumdaki bir noktada tanımlanmış olup olmadığını nasıl anlarım?
C: Değişkenin tanımlandığı bir satır görene kadar kaynak dosyasında okuyun.
Ama ayrıca, bunun oldukça pitonik olan çeşitli permütasyonları olduğuna dair bir kod örneği verdiniz. Bir koşulla eşleşen öğeler için bir dizi taramanın peşindesiniz, işte bazı çözümler:
def findFirstMatch(sequence):
for value in sequence:
if matchCondition(value):
return value
raise LookupError("Could not find match in sequence")
Açıkça bu örnekte değiştirmek olabilir raise
bir ile return None
elde etmek istediği bağlı.
Koşulla eşleşen her şeyi istiyorsanız, bunu yapabilirsiniz:
def findAllMatches(sequence):
matches = []
for value in sequence:
if matchCondition(value):
matches.append(value)
return matches
Bunu yapmanın başka bir yolu daha var, yield
size göstermekten rahatsız olmayacağım, çünkü çalışma şekli oldukça karmaşık.
Ayrıca, bunu başarmanın tek bir yolu vardır:
all_matches = [value for value in sequence if matchCondition(value)]