Поиск уникальных и повторяющихся элементов в списке в 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 предназначен для сравнения этого элемента с собранными уникальными элементами.
Алгоритм:
- Прочтите или возьмите список myList.
- Инициализируйте пустой список uniqueList.
- Для каждого элемента:
- Предположим, что этого элемента нет в myList – инициализировать itemExist значением False.
- Для каждого элемента x в uniqueList:
- Проверьте, равен ли элемент x. Если да, то этот элемент уже есть в вашем uniqueList. Установите для itemExist значение True и прервите цикл.
- Если itemExist имеет значение False, добавьте элемент в uniqueList.
- uniqueList содержит уникальные элементы myList:
- Предположим, что этого элемента нет в myList – инициализировать itemExist значением False.
- Для каждого элемента x в uniqueList:
- Проверьте, равен ли элемент x. Если да, то этот элемент уже есть в вашем uniqueList. Установите для itemExist значение True и прервите цикл.
- Если itemExist имеет значение False, добавьте элемент в uniqueList.
- Проверьте, равен ли элемент 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}
В результирующий набор попали только повторяющиеся элементы.
Автор