Tôi có một câu lệnh if-elif-elif-else trong đó 99% thời gian, câu lệnh else được thực thi:
if something == 'this':
doThis()
elif something == 'that':
doThat()
elif something == 'there':
doThere()
else:
doThisMostOfTheTime()
Cấu trúc này được thực hiện rất nhiều , nhưng vì nó vượt qua mọi điều kiện trước khi nó chạm vào điều kiện khác, tôi có cảm giác nó không hiệu quả lắm, chứ đừng nói đến Pythonic. Mặt khác, nó cần biết nếu có bất kỳ điều kiện nào trong số đó được đáp ứng hay không, vì vậy nó nên thử nghiệm nó.
Có ai biết nếu và làm thế nào điều này có thể được thực hiện hiệu quả hơn hoặc đây chỉ đơn giản là cách tốt nhất có thể để làm điều đó?
if not something.startswith("th"): doThisMostOfTheTime()
và thực hiện một so sánh khác trong else
mệnh đề.
something
hay các phép so sánh tương tự được thực hiện nhiều lần trên cùng một giá trị?
sort
chuỗi những thứ bạn đang chạy if / else ... của mình, sao cho tất cả các phần tử mà một trong các điều kiện sẽ khớp với nhau đều ở một đầu và tất cả những phần còn lại ở đầu kia? Nếu vậy, bạn có thể xem liệu điều đó có nhanh hơn / thanh lịch hơn hay không. Nhưng hãy nhớ rằng, nếu không có vấn đề về hiệu suất, thì còn quá sớm để lo lắng về việc tối ưu hóa.