如何在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)
我正在尝试检查列表是否构成集合。我创建了一个代码来检查重复项,如果列表中有重复项,这意味着它没有设置,它应该输出 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)