Что найти?

Поиск уникальных и повторяющихся элементов в списке в Python

/
/

Чтобы найти уникальные элементы списка, вы можете воспользоваться набором в Python или использовать цикл for и перебирать, чтобы проверить, является ли элемент уникальным или нет.

Элемент считается уникальным, если он встречался в списке только один раз.

В этом руководстве мы напишем примеры программ, которые помогут нам найти уникальные элементы списка.

Пример 1: с помощью набора

Список в Python – это упорядоченный набор элементов, с разрешенными дубликатами.

Set – это набор уникальных элементов. Мы можем использовать это свойство, чтобы получить только уникальные элементы списка.

Передайте список в качестве аргумента конструктору набора, и он вернет набор уникальных элементов.

В следующей программе мы возьмем список чисел и создадим из него набор с помощью конструктора набора.

myList = [9, 1, 5, 9, 4, 2, 7, 2, 9, 5, 3]
mySet = set(myList)
print(mySet)

Вывод:

{1, 2, 3, 4, 5, 7, 9}

В получившийся набор попали только уникальные элементы.

Пример 2: с помощью цикла For Loop

Мы также можем использовать оператор цикла, например While Loop или For Loop, для перебора элементов списка и проверки того, появился ли элемент только один раз.

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

Алгоритм:

  1. Прочтите или возьмите список myList.
  2. Инициализируйте пустой список uniqueList.
  3. Для каждого элемента:
    1. Предположим, что этого элемента нет в myList – инициализировать itemExist значением False.
    2. Для каждого элемента x в uniqueList:
      1. Проверьте, равен ли элемент x. Если да, то этот элемент уже есть в вашем uniqueList. Установите для itemExist значение True и прервите цикл.
    3. Если itemExist имеет значение False, добавьте элемент в uniqueList.
    4. uniqueList содержит уникальные элементы myList:
      1. Предположим, что этого элемента нет в myList – инициализировать itemExist значением False.
      2. Для каждого элемента x в uniqueList:
        1. Проверьте, равен ли элемент x. Если да, то этот элемент уже есть в вашем uniqueList. Установите для itemExist значение True и прервите цикл.
        2. Если itemExist имеет значение False, добавьте элемент в uniqueList.
        3. Проверьте, равен ли элемент x. Если да, то этот элемент уже есть в вашем uniqueList. Установите для itemExist значение True и прервите цикл.
myList = [9, 1, 5, 9, 4, 2, 7, 2, 9, 5, 3]
uniqueList = []
 
for item in myList :
    itemExist = False
    for x in uniqueList :
        if x == item :
            itemExist = True
            break
    if not itemExist :
        uniqueList.append(item)

print(uniqueList)

Вывод:

[9, 1, 5, 4, 2, 7, 3]

Преимущество этого процесса в том, что порядок уникальных элементов не меняется.

Поиск повторяющихся элементов в списке

Чтобы найти только повторяющиеся элементы в списке в Python, вы можете проверить вхождения каждого элемента в списке и добавить его в дубликаты, если количество вхождений этого элемента больше одного.

Элемент считается дублированным, если он встречается в списке более одного раза.

В этом руководстве мы напишем примеры программ, которые помогут нам найти повторяющиеся элементы в списке.

Пример 1

В следующей программе мы возьмем список чисел и создадим из него набор с помощью конструктора набора.

myList = [9, 1, 5, 9, 4, 2, 7, 2, 9, 5, 3]
occurrences = []
 
for item in myList :
    count = 0
    for x in myList :
        if x == item :
            count += 1
    occurrences.append(count)

duplicates = set()
index = 0
while index < len(myList) :
    if occurrences[index] != 1 :
        duplicates.add(myList[index])
    index += 1

print(duplicates)

Вывод:

{9, 2, 5}

В результирующий набор попали только повторяющиеся элементы.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

This div height required for enabling the sticky sidebar