如何在for循环后输出return输出一次

How to make return output print once after a for loop

我正在尝试检查列表是否构成集合。我创建了一个代码来检查重复项,如果列表中有重复项,这意味着它没有设置,它应该输出 False 并将其转换为所需的集合;如果没有重复项,则输出应为 True。但是当我 运行 我的代码时,它没有输出,我试图将 return 更改为打印,但它按每次迭代时间而不是一次打印值。我不明白哪里出了问题。

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(testsets([1, 1, 3, 2, 3]))

输出:

(False, ' the set should be: ', {1, 2, 3})

注意 return 后跟逗号会生成一个元组,如果你想要一个字符串 return 则改为:

return f"False, the set should be: {set(array)}"

同时检查是否有重复项最好这样做:

if len(set(array)) != len(array)