我下面的代码显示为TRUE,尽管没有重复的代码。不幸的是,我受到的限制不允许我更改主函数。有人能帮助我理解如何确保我的函数返回到主函数吗?我在其他地方遇到了这个问题,因此我们将非常感谢答案背后的推理
ONE_TEN =[12, 20, 10, 14, 54, 16, 75, 38, 79, 103] #this is test run 2
#j. Demonstrate testing if the list contains duplicates.
print("The list has duplicates: ", hasDuplicate(ONE_TEN))
def hasDuplicate(data:list)->bool:
'''Return true if the list contains duplicate elements
(which need not be adjacent)'''
unique = set(data)
unique = list(unique)
fact = unique != data
return(fact)
if __name__ == "__main__":
main() ```
你没有做正确的比较。简单的调试显示了问题:只需打印两个列表:
输出:
相反,比较长度:整个函数可以简单地
集合是元素的集合;Python将以它认为方便的任何顺序存储元素。因此,当您将列表转换为集合时,顺序可能会改变。集合的定义没有顺序,但Python定义了迭代器,因此可以循环遍历元素
当您从一个集合中创建一个列表时,您可以得到Python喜欢使用的任何顺序,通常是使用的哈希函数产生的一些显然毫无意义的排列。当您从一个集合创建一个列表时,Python只是在集合中迭代,因此您可以在列表中获得基于集合的顺序。没有理由期望此顺序与元素的来源相关
相关问题 更多 >
编程相关推荐