[英]How to make return output print once after a for loop
我試圖檢查一個列表是否構成一個集合。 我創建了一個代碼來檢查重復項,如果列表中有重復項,這意味着它沒有設置,它應該輸出 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 時,它會多次打印。
你不應該打印輸出嗎?
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.