python – 如何检查列表中的两个数字是否相同
发布时间:2020-12-20 13:01:25 所属栏目:Python 来源:网络整理
导读:我很好奇我将如何检查列表中的2个数字是否相同.例如, myList=[1,7,9,3,1,2,8] 在这种情况下,“myList”中重复“1”. 我如何制作一个程序来检查列表中的两个数字是否相同(重复).尝试使用循环,所以我可以理解,因为我还没有学习复杂的功能. 解决方法 如果你想使
我很好奇我将如何检查列表中的2个数字是否相同.例如,
myList=[1,7,9,3,1,2,8] 在这种情况下,“myList”中重复“1”. 我如何制作一个程序来检查列表中的两个数字是否相同(重复).尝试使用循环,所以我可以理解,因为我还没有学习复杂的功能. 解决方法
如果你想使用循环,你将不得不使用你已经看过的列表或一组数字.然后在循环时你将检查,如果已经看到了数字,则使用in运算符.
seen = [] for number in myList: if number in seen: print "Number repeated!" else: seen.append(number) set不允许重复,因此它非常适合这种算法.正如评论中所提到的,检查元素是否在集合中的时间复杂度对于平均情况(O(1))是不变的,因此如果你有很多数字,这会更有效. seen = set() for number in myList: if number in seen: print "Number repeated!" seen.add(number) # won't duplicate 我会说最pythonic的方式是使用collections.Counter,但其他答案已经覆盖了这个.要使用内置函数,您可以生成一组使用generator expression和set出现多次的数字. In [39]: seen = set() In [40]: print list(set(x for x in myList if x in seen or seen.add(x))) [1] 这里表达式将循环遍历myList中的所有值,并将它们添加到一个名为see的集合中,如果已经看到它们.最终,它会将结果集转换为列表并打印内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |