Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/88: Рейтинг темы: голосов - 88, средняя оценка - 4.74
 Аватар для sasha300
6 / 3 / 0
Регистрация: 12.07.2014
Сообщений: 183
1

Нахождение повторяющихся элементов в списке

22.11.2019, 09:48. Показов 17573. Ответов 13

Author24 — интернет-сервис помощи студентам
Всем привет!

Сразу оговорюсь, что есть дубликат темы на форуме: Нахождение повторяющихся элементов в списке? , но там идет работа с цифрами, тогда как у меня символы.
Задача: если хотя бы раз случается повтор, то вывести сообщение об этом.
Наваял рабочий код, но уверен, что можно написать более красиво.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import collections
 
my_list = ["a", "b", "a"]
password = collections.Counter(my_list)
print(password) 
cnt = 0
for i in password:
    if password[i] > 1:
        cnt += 1
if cnt > 0:
    print("Имеются повторяющиеся элементы")
else:
    print("Все элементы уникальны")
Выдает:
Код
Counter({'a': 2, 'b': 1})
Имеются повторяющиеся элементы
Как эту задачу решить более коротким кодом?
Заранее признателен за опыт!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2019, 09:48
Ответы с готовыми решениями:

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

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

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

Удаление повторяющихся элементов в списке
Всем привет. Только начали изучать F#, поэтому есть затруднение с написанием программы. Нужно...

13
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7217 / 4716 / 1226
Регистрация: 30.03.2015
Сообщений: 13,438
Записей в блоге: 29
22.11.2019, 10:10 2
Лучший ответ Сообщение было отмечено sasha300 как решение

Решение

Цитата Сообщение от sasha300 Посмотреть сообщение
Как эту задачу решить более коротким кодом?
использовать множество(set), если поместить лист в множество то останутся только уникальные элементы, то есть длина не изменится в случае если были только уникальные. А вот если были повторы то длина уменьшится, на жтом можно построить сравнение

Python
1
2
3
4
5
6
7
8
>>> my_list = ["a", "b", "a"]
>>> is_repeatable = len(my_list) != len(set(my_list)) #если длина списка не равна длине множества, значит есть повторы
>>> print("Имеются повторяющиеся элементы" if is_repeatable else "Все элементы уникальны")
Имеются повторяющиеся элементы
>>> my_list = ["a", "b"]
>>> is_repeatable = len(my_list) != len(set(my_list))
>>> print("Имеются повторяющиеся элементы" if is_repeatable else "Все элементы уникальны")
Все элементы уникальны
2
Эксперт Python
 Аватар для dondublon
4640 / 2056 / 363
Регистрация: 17.03.2012
Сообщений: 10,138
Записей в блоге: 6
22.11.2019, 10:12 3
sasha300,
Сразу оговорюсь, что есть дубликат темы на форуме: Нахождение повторяющихся элементов в списке? , но там идет работа с цифрами, тогда как у меня символы.
А разницы нет.
2
 Аватар для sasha300
6 / 3 / 0
Регистрация: 12.07.2014
Сообщений: 183
22.11.2019, 10:59  [ТС] 4
Цитата Сообщение от Welemir1 Посмотреть сообщение
is_repeatable = len(my_list) != len(set(my_list))
Первый раз увидел такой синтаксис!
Написал:
Python
1
2
repeat = 1 != 2
print(repeat)
Получил "True"

А где более подробно описывается такая конструкция? Или как она правильно называется?
Погуглил "python сокращенный if", но все результаты связаны с командой if, а в вышеприведенном примере if-а и в помине нет..
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5966 / 3729 / 1097
Регистрация: 17.05.2012
Сообщений: 10,787
Записей в блоге: 9
22.11.2019, 11:16 5
1 != 2 - это выражение, и как любое выражение оно возвращает результат. Да, его можно присвоить переменной. В других языках тоже так можно:

C
1
bool is = 1 != 0; //false
Добавлено через 1 минуту
То есть оператор != ничем не хуже + (сложения). Вы ведь не удивляетесь строке?
Python
1
repeat = 1 + 2
2
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7217 / 4716 / 1226
Регистрация: 30.03.2015
Сообщений: 13,438
Записей в блоге: 29
22.11.2019, 13:05 6
Цитата Сообщение от sasha300 Посмотреть сообщение
Первый раз увидел такой синтаксис!
вроде должны это все описывать в главах про булины и условные выражения
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5966 / 3729 / 1097
Регистрация: 17.05.2012
Сообщений: 10,787
Записей в блоге: 9
22.11.2019, 14:16 7
А вот не факт. В нормальных книгах это аж несколько глав:
* тип данных bool
* логические операторы < > ==…
* логические выражения
* инструкция ветвления if
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7217 / 4716 / 1226
Регистрация: 30.03.2015
Сообщений: 13,438
Записей в блоге: 29
22.11.2019, 16:29 8
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
А вот не факт. В нормальных книгах это аж несколько глав:
* тип данных bool
* логические операторы < > ==…
* логические выражения
* инструкция ветвления if
тогда советую ТС прочесть их все!
1
 Аватар для sasha300
6 / 3 / 0
Регистрация: 12.07.2014
Сообщений: 183
27.11.2019, 09:01  [ТС] 9
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
В нормальных книгах это аж несколько глав
А не могли бы привести список книг?
Дело в том, что я изучал Python по книге Эрика Мэтиза "Программирование игр, визуализация данных, веб-приложения", но там ни слова об этом..
Миниатюры
Нахождение повторяющихся элементов в списке  
0
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
27.11.2019, 10:19 10
"Изучаем python" М.Лутц
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5966 / 3729 / 1097
Регистрация: 17.05.2012
Сообщений: 10,787
Записей в блоге: 9
27.11.2019, 11:09 11
Цитата Сообщение от codcw Посмотреть сообщение
"Изучаем python" М.Лутц
Я остро реагирую на упоминание Лутца, но на самом деле книга неплоха и от известного издательства O'Reily. Есть официальный перевод на русский язык.
1
Эксперт PythonЭксперт Java
19511 / 11051 / 2931
Регистрация: 21.10.2017
Сообщений: 23,301
27.11.2019, 19:12 12
Я вот с этой начинал. Мне понравилась
Название: python-ekspress-kurs.jpg
Просмотров: 235

Размер: 10.3 Кб
1
0 / 0 / 0
Регистрация: 19.07.2022
Сообщений: 21
05.09.2022, 19:02 13
#Проверить, есть ли в последовательности чисел списка дубликаты.

s=[1,3,5,14,12,8,8,8,14,] # Дан список
m=set(s) # Преобразуем список в множество. Дубликаты удалятся и длинна станет меньше

if len(s)==len(m): # Если длинна не изменится, то дубликатов не было.
# Если длинна изменится, то дубликаты были.
print(s,'-','В данном списке не содержатся дубликаты')
else:
print(s,'-', 'В данном списке содержатся дубликаты')
0
Эксперт PythonЭксперт Java
19511 / 11051 / 2931
Регистрация: 21.10.2017
Сообщений: 23,301
05.09.2022, 19:05 14
ILON_MASK_, то же самое написано в посте 2, два года назад
0
05.09.2022, 19:05
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.09.2022, 19:05
Помогаю со студенческими работами здесь

Удаление не повторяющихся элементов в списке.
Нужно добавить условие при слиянии 2 списков. Условие такое: удалить не схожие элементы из списка,...

Удаление повторяющихся элементов в списке
no_duble(L,NDL ), здесь L,NDL списки. Предикат истеннен если: список NDL получен из списка L,...

Удаление повторяющихся элементов в односвязном списке
Добрый день! Задание такое: построить линейный список из нескольких динамических переменных,...

Удаление повторяющихся элементов в списке, включая подсписки
Добрый день! Поставили дополнительное задание в университете. Необходимо написать функцию,...

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

Нахождение повторяющихся элементов в массвиве.
Суть в этом: нужно пройти по массиву, найти повторяющиеся элементы и вывести что это за элементы и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Преобразование полей (элементов управления содержимым) в обычный текст
РоΜа 23.01.2025
Возникла необходимость преобразовать поля в текст (те, что на вкладке разработчик добавляются) . Помучившись родил следующее: Sub ПоляВТекст() Преобразует все поля в текст (даты, текст,. . .
Как проверить существование директории в скрипте Bash
bt_guru 23.01.2025
При разработке скриптов Bash одной из ключевых задач является корректная работа с файловой системой, где особое место занимает проверка существования директорий. Эта операция становится критически. . .
Как работают срезы (slice) в Python
bytestream 23.01.2025
Python предоставляет разработчикам мощный и гибкий инструмент для работы с последовательностями данных - срезы (slices). Эта функциональность позволяет извлекать, модифицировать и управлять. . .
Как удалить подмодуль (submodule) в Git
bytestream 23.01.2025
При работе с крупными проектами в системе контроля версий Git разработчики часто сталкиваются с необходимостью управления зависимостями и внешними компонентами. Подмодули (submodules) представляют. . .
В чем разница между @staticmethod и @classmethod в Python. Декораторы методов
bytestream 23.01.2025
В Python декораторы методов представляют собой мощный инструмент, позволяющий модифицировать поведение функций и методов без изменения их исходного кода. Эта возможность является одной из. . .
Как преобразовать InputStream в String в Java
bytestream 23.01.2025
В мире Java-разработки работа с потоками данных является одной из ключевых операций при создании современных приложений. InputStream, как фундаментальный класс для обработки входных потоков данных,. . .
Как обновить форк (ответвление) репозитория в Git
bytestream 23.01.2025
Одним из наиболее мощных инструментов Git для организации совместной работы является механизм форкинга репозиториев, который позволяет создавать независимые копии проектов для дальнейшей разработки. . . .
Как работает async/await в C#. Асинхронное программировани­е в .NET
bytestream 23.01.2025
Введение в асинхронное программирование Асинхронное программирование представляет собой важнейшую концепцию современной разработки программного обеспечения, особенно в контексте создания. . .
КуМир: полное руководство
bytestream 23.01.2025
Введение в КуМир: история создания и назначение КуМир (Комплект Учебных МИров) представляет собой образовательную среду программирования, которая была создана для обучения основам алгоритмизации и. . .
Что такое OLAP. Где и как использовать многомерный анализ данных
bytestream 23.01.2025
Введение в OLAP-технологии В современном мире бизнес-аналитика и обработка больших массивов данных играют ключевую роль в принятии стратегических решений. Организации накапливают огромные объемы. . .
MongoDB: что это, для чего нужна и как использовать
bytestream 23.01.2025
Введение в MongoDB: современная документоориентированная СУБД В современном мире разработки программного обеспечения выбор правильной системы управления базами данных является критически важным. . .
Как использовать закрытый ключ шифрования в Git. Шифрование в Git
bytestream 23.01.2025
Установка и настройка закрытых ключей в Git предоставляет дополнительный уровень безопасности для работы с репозиториями. Для начала необходимо создать пару ключей, обычно это осуществляется с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru