Быстрый в изучении - мощный в программировании
Скрипт ИНВЕСТОР на Python

Попробуйте себя в качестве инвестора имея в помощники мощный алгоритм советника на Python...

Все уроки по PyQt5

PyQt5 реализован как комплект Python-модулей. Он включает в себя около 620 классов и 6000 функций и методов...

Скрипт отправки SMS через Python

Была задача отправить SMS-ки большому списку номеров телефона с уточнением цены за всю рассылку "До" ее отправки...

Проверяем уникальность элементов списка

Проверяем уникальность элементов списка

Задача – есть список чисел, нужно проверить каждое число на уникальность, то есть используется ли оно лишь 1 раз.

С помощью Python для этого есть несколько вариантов. Традиционным является – берется по очереди каждый из элементов и сравнивается с каждым стоящим за ним. Как только находится первое совпадение, принимается решение о прекращении работы программы, список считается таким, который содержи повторяющиеся элементы.

Другой вариант реализуется при помощи типа данных «множества» (set). Мы знаем, что множество не может содержать одинаковые элементы. Значит мы преобразовываем имеющийся список в множество, соответственно одинаковых элементов в нем не будет. После этого нужно сравнить длину списка и множества, в результате мы сможем понять уникальный ли список. Если длинна совпадет – каждый элемент списка уникален, в ином случае – имеют место повторения.

К примеру, следующий код генерирует наш список:


from random import random
N = 10 
arr = [0] * N
for i in range(N):
    arr[i] = int(random() * 50)
print(arr)

Вариант решения примера с помощью традиционного метода:


for i in range(N-1):
    for j in range(i+1,N):
        if arr[i] == arr[j]:
            print("Есть одинаковые")
            quit()
print("Все элементы уникальны")

В данном примере j будет принимать значения элемента, идущего за тем, уникальность которого нам необходимо проверить. Нет необходимости в сравнении с элементами, находящимися впереди и индексом i, поскольку предыдущим итерациям внешнего цикла эта проверка уже была присуща.

Теперь выполним то же самое посредством множетсв:


setarr = set(arr)
if len(arr) == len(setarr):
    print("Все элементы уникальны")
else:
    print("Есть одинаковые")

Для конвертирования списка в множества мы применяем функцию set().

Код выполняет таким образом:


pl@pl-desktop ~ $ python3 uniqueness.py 
[2, 4, 1, 2, 45, 38, 26, 11, 49, 25]
Есть одинаковые
pl@pl-desktop ~ $ python3 uniqueness.py 
[44, 49, 21, 19, 23, 27, 34, 9, 41, 31]
Все элементы уникальны

Если вам нужен готовый интернет магазин недорого заходите на сайт gotoviy.ru. Здесь вы найдете массу разнообразных предложений готовых интернет магазинов. Каждый вариант качественный и уже готов к запуску. И главное преимущество – это скромная цена, при том что вы сразу получаете рабочий продукт.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru yandex.ru
Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)