我需要做的是,如果我的二維陣列中的任何值大于 0.3,它必須顯示有毒,但它總是列印無毒,即使存在更大的值,如 0.6 或 0.4。我從陣列中列印了我的值,只是為了查看回圈是否存在問題,但這沒關系。我列印正確的值
**for i in range(len( classes)):
for j in range(len(classes[i])):
print(classes[i][j])
if (classes[i][j] >0.3):
comment = " toxic"
else:
comment = "non toxic"**
uj5u.com熱心網友回復:
一種方法是使用該any函式,如下所示:
if any(element > 0.3 for group in classes for element in group):
comment = "toxic"
else:
comment = "non-toxic"
uj5u.com熱心網友回復:
我認為這里的問題是您僅使用 1 個變數來處理值串列。如果數字大于 0.3,則變數 comment 將被賦予字串毒性,但如果陣列中的下一個值小于 0.3,則變數 comment 的值將被覆寫。如果您想檢查每個變數并根據剛剛檢查的值存盤一個字串,請嘗試以下操作:
classes_values = []
for i in range(len( classes)):
classes_values.append([])
for j in range(len(classes[i])):
print(classes[i][j])
if (classes[i][j] >4):
comment = " toxic"
else:
comment = "non toxic"
classes_values[i].append(comment)
uj5u.com熱心網友回復:
更好的方法是使用函式:
def contains_toxic(classes):
for group in classes:
for element in group:
if element > 0.3:
return True
return False
您還可以使用該for.. in構造使其更易于理解
但是,該any函式使其成為單行并且可能具有更好的性能,作為一個內置函式,但您需要了解串列推導。
istoxic = any(element > 0.3 for group in classes2 for element in group);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/414310.html
標籤:
下一篇:掃描儀方法.hasNextInt()和if陳述句-僅作業1次。對于下一個回圈-自動(不等待任何輸入)給出false
