這似乎是一個非常基本的問題......但由于某種原因我無法直接思考......
如何在不復制“else”陳述句兩次的情況下撰寫以下內容?(并且不需要把它放在一個函式中)
我寫了 print("a") 和 print("b"),但它最初有 4-6 個陳述句。
if os.path.exists(new_output_folder) and os.path.exists(prev_output_folder):
subdirs_lastrun = [os.path.basename(x[0]) for x in os.walk(new_output_folder)]
subdirs_prevrun = [os.path.basename(x[0]) for x in os.walk(prev_output_folder)]
if not "ref" in subdirs_lastrun and "ref" in subdirs_prevrun:
print("a")
else:
print("b")
else:
print("b")
uj5u.com熱心網友回復:
您可以只使用布林值來決定最后必須發生的復雜事情,例如:
do_a = os.path.exists(new_output_folder) and os.path.exists(prev_output_folder)
if do_a:
subdirs_lastrun = [os.path.basename(x[0]) for x in os.walk(new_output_folder)]
subdirs_prevrun = [os.path.basename(x[0]) for x in os.walk(prev_output_folder)]
do_a = not "ref" in subdirs_lastrun and "ref" in subdirs_prevrun
if do_a:
print("a")
else:
print("b")
顯然,如果(如您所說)a/b 路徑比簡單的列印更復雜,這將變得有利。
uj5u.com熱心網友回復:
while(True):
if os.path.exists(new_output_folder) and os.path.exists(prev_output_folder):
subdirs_lastrun = [os.path.basename(x[0]) for x in os.walk(new_output_folder)]
subdirs_prevrun = [os.path.basename(x[0]) for x in os.walk(prev_output_folder)]
if not "ref" in subdirs_lastrun and "ref" in subdirs_prevrun:
print("a")
break
# else case
print("b")
break
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/405550.html
標籤:
上一篇:Python中資料框列的條件總和
