Trước hết, câu trả lời của tôi cho câu hỏi ban đầu bạn đã hỏi
H: Làm thế nào để tôi khám phá nếu một biến được xác định tại một điểm trong mã của tôi?
A: Đọc trong tệp nguồn cho đến khi bạn thấy một dòng trong đó biến đó được xác định.
Nhưng xa hơn nữa, bạn đã đưa ra một ví dụ mã rằng có nhiều hoán vị khác nhau khá là pythonic. Bạn đang tìm cách quét một chuỗi các yếu tố phù hợp với một điều kiện, vì vậy đây là một số giải pháp:
def findFirstMatch(sequence):
for value in sequence:
if matchCondition(value):
return value
raise LookupError("Could not find match in sequence")
Rõ ràng trong ví dụ này, bạn có thể thay thế raise
bằng một return None
tùy thuộc vào những gì bạn muốn đạt được.
Nếu bạn muốn mọi thứ phù hợp với điều kiện, bạn có thể làm điều này:
def findAllMatches(sequence):
matches = []
for value in sequence:
if matchCondition(value):
matches.append(value)
return matches
Có một cách khác để làm điều này với yield
điều đó tôi sẽ không bận tâm chỉ cho bạn, bởi vì nó khá phức tạp trong cách nó hoạt động.
Hơn nữa, có một cách để đạt được điều này:
all_matches = [value for value in sequence if matchCondition(value)]