[英]how do i reduce the amount of if statements in my code?
所以我的代碼有很多 if 語句:
rnrp += 1
if a100 == b100:
rnrp += 1
if a10 == b10:
rnrp += 1
if a1 == b1:
rnrp += 1
和:
if b1000 == a100:
rnwp += 1
break
if b1000 == a10:
rnwp += 1
break
if b1000 == a1:
rnwp += 1
break
while true:
if b100 == a1000:
rnwp += 1
break
if b100 == a10:
rnwp += 1
break
if b100 == a1:
rnwp += 1
break
while true:
if b10 == a1000:
rnwp += 1
break
if b10 == a100:
rnwp += 1
break
if b10 == a1:
rnwp += 1
break
while true:
if b1 == a1000:
rnwp += 1
break
if b1 == a100:
rnwp += 1
break
if b1 == a10:
rnwp += 1
break
如您所見,這是很多 if 語句,第一個很好,但第二個需要改進。 同樣,第二個代碼試圖完成的是檢查 b 的每個位置(100 的位置、100 的位置、10 的位置等)與 a 的任何位置匹配。 如何減少代碼第二部分中 if 語句的數量? 這篇文章已由 jasonharper 回答(我現在找不到按鈕,所以我只是把它放在問題中)謝謝!!
您可以使用list
或dict
類的集合來減少操作次數。 例如,
while true:
if b100 == a1000:
rnwp += 1
break
if b100 == a10:
rnwp += 1
break
if b100 == a1:
rnwp += 1
break
可能
if b100 in [a1000, a10, a1]:
rnwp += 1
由於您經常重復這些模式中的一些,您可以事先制作一些這些列表並重復使用它們。 使用字典甚至可能很有用,這樣您就不必單獨記住變量。
使用 elif 語句。 除此之外,您在那里無能為力。 使用許多 if 語句可能會令人困惑,但只要您的代碼是干凈的,您就可以將其關閉。
我會縮短它的方式:
Boolean_value = True
while Boolean_value:
if b100 == a1000: rnwp, Boolean_value = rnwp + 1, False
if b100 == a10: rnwp, Boolean_value = rnwp + 1, False
if b100 == a1: rnwp, Boolean_value = rnwp + 1, False
如果你想要一個 if 語句並且 if 語句只有一個表達式,它非常有用。 您也可以在一行中更改多個值。
您可以使用 itertools 中的 product 並在一行中完成所有操作:
from itertools import product
rnwp += sum(b==a for b,a in product([b1000,b100,b10,b1],[a1000,a100,a10,a1]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.