如何检查列表中是否存在重复值并获取该值

Fut*_*cky 0 python for-loop list python-2.7

如何在列表中找到重复值?总会有一个重复的值

例如:

numbers=[1,2,3,4,5,3]
Run Code Online (Sandbox Code Playgroud)

我需要得到值3

这是我尝试的,但它有时打印相同列表的值2次.

endLoop=False
    for n1 in range(0,len(numbers)):
        for n2 in range(1,len(numbers)):
            if numbers[n1]==numbers[n2]:
                print numbers
                print numbers[n1]
                endLoop=True
        if endLoop:
            break
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 7

跟踪您在set()对象中看到的数字,重复该集合中已有的第一个数字:

def find_repeat(numbers):
    seen = set()
    for num in numbers:
        if num in seen:
            return num
        seen.add(num)
Run Code Online (Sandbox Code Playgroud)

这是查找第一个重复值的有效方法,因为一旦找到它,就不必查看其余的数字.


小智 6

有一个更简单的方法可以做到这一点。使用 .count() 关键字。你可以做这样的事情

for n in numbers:
    if numbers.count(n)>1:
        print("Repeated number: ",n)
Run Code Online (Sandbox Code Playgroud)