我試圖檢查一個串列是否構成一個集合。我創建了一個代碼來檢查重復項,如果串列中有重復項,這意味著它沒有設定,它應該輸出 False 并將其轉換為所需的集合;如果沒有重復,則輸出應為 True。但是當我運行我的代碼時,它沒有給出任何輸出,我試圖將回傳值更改為列印,但它在每次迭代時間而不是一次列印值。我不明白出了什么問題。
def testsets(array):
for elem in array:
if array.count(elem) > 1:
return False, " the set should be: ", set(array)
else:
return True
testsets([1, 2, 3, 4, 5])
testsets([1, 1, 3, 2, 3])
testsets([0])
預期輸出
True
False the set should be: {1, 3, 2}
True
但它沒有顯示任何輸出,當我將 return 更改為 print 時,它會多次列印。
uj5u.com熱心網友回復:
你不應該列印輸出嗎?
print(testsets([1, 1, 3, 2, 3]))
輸出:
(False, ' the set should be: ', {1, 2, 3})
注意 return 后跟逗號會生成一個元組,如果你想要一個字串回傳這個:
return f"False, the set should be: {set(array)}"
另外檢查是否有重復最好這樣做:
if len(set(array)) != len(array)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/351699.html
上一篇:Python練習元組,設定和串列
