Python: найдите первый повторяющийся номер в списке

Чтобы найти первый повторяющийся номер в списке с помощью Python, можно использовать несколько методов. Вот несколько подходов:

Метод 1: использование набора

Вы можете перебирать список и добавлять каждый элемент в набор. Если элемент уже присутствует в наборе, это означает, что он дубликат.

def find_first_duplicate(numbers):
    seen = set()
    for num in numbers:
        if num in seen:
            return num
        seen.add(num)
    return None  # If no duplicates are found
numbers = [1, 2, 3, 2, 4, 5, 6, 7, 4]
first_duplicate = find_first_duplicate(numbers)
print("First duplicate number:", first_duplicate)

Выход:

First duplicate number: 2

Метод 2: использование словаря

Вы также можете использовать словарь для отслеживания количества каждого числа. Как только вы встретите число со счетом 2, вы можете вернуть его как первый дубликат.

def find_first_duplicate(numbers):
    counts = {}
    for num in numbers:
        counts[num] = counts.get(num, 0) + 1
        if counts[num] == 2:
            return num
    return None  # If no duplicates are found
numbers = [1, 2, 3, 2, 4, 5, 6, 7, 4]
first_duplicate = find_first_duplicate(numbers)
print("First duplicate number:", first_duplicate)

Выход:

First duplicate number: 2

Метод 3: использование индексации списка

Используя метод списков index(), вы можете найти индекс первого вхождения числа. Если индекс числа отличается от индекса его первого вхождения, это означает, что оно является дубликатом.

def find_first_duplicate(numbers):
    for i, num in enumerate(numbers):
        if i != numbers.index(num):
            return num
    return None  # If no duplicates are found
numbers = [1, 2, 3, 2, 4, 5, 6, 7, 4]
first_duplicate = find_first_duplicate(numbers)
print("First duplicate number:", first_duplicate)

Выход:

First duplicate number: 2

Обратите внимание, что эти методы предполагают, что список содержит только целые числа. Если список содержит другие типы данных, могут потребоваться изменения.