簡體   English   中英

如何在for循環后使返回輸出打印一次

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM