加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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的集合中,如果已经看到它们.最终,它会将结果集转换为列表并打印内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读