Программа которая сортирует массив и находит количество различных чисел в нем питон

Подкиньте идею или код(в котором я буду разбираться)/ Думаю сделать это через два цикла for. Если есть более короткое решение, напишите мне. Задача:

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

Отслеживать
13.6k 12 12 золотых знаков 43 43 серебряных знака 72 72 бронзовых знака
задан 3 фев 2021 в 21:25
19 1 1 серебряный знак 4 4 бронзовых знака

Можно через сортировку, можно через set, можно и вправду двойным циклом: добавляем i-тый элемент в массив ans, если в массиве a[i] not in ans. А, если упорядоченный, то просто проверить, что данный элемент не равен предыдущему

3 фев 2021 в 21:32

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

3 фев 2021 в 21:33

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Хватит и одного цикла: считать разницу двух соседних элементов. Если не 0, то они различные. Это если числа. Если не числа, то просто сравнивать соседние элементы.

Уроки Python — Списки (Массивы)


n = len(set(spisok))
Отслеживать
ответ дан 3 фев 2021 в 21:28
25.2k 7 7 золотых знаков 30 30 серебряных знаков 46 46 бронзовых знаков

Всё-таки если в условии подсвечено, что дан отсортированный список, то вряд ли ожидается, что это надо решать через set.

3 фев 2021 в 22:41
3 фев 2021 в 22:43
3 фев 2021 в 22:50

А вот ещё такой забавный вариант у меня получился чисто по приколу:

Читайте также:
Актуальность программы это в педагогике

print(sum(x != y for x,y in zip(a, a[1:])) + bool(a))

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

Отслеживать
ответ дан 4 фев 2021 в 8:45
65.8k 5 5 золотых знаков 19 19 серебряных знаков 50 50 бронзовых знаков

самый быстрый способ (раз упорядоченный список):

nums = [1, 2, 2, 3, 4, 5, 5, 5] count = 1 for i in range(1, len(nums)): if nums[i — 1] != nums[i]: count += 1 print(count)

или чуть сократив код:

count = 1 for i in range(1, len(nums)): count += nums[i — 1] != nums[i]

правда стоит сделать проверку для ситуации, когда список пустой

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

count = len([nums[0]] + [nums[i] for i in range(1, len(nums)) if nums[i — 1] != nums[i]])

Это все требует одного прохода по списку

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

count = len(set(nums))

Самый неоптимальный по времени работы код

nums = [1, 2, 2, 3, 4, 5, 5, 5] res = [] for elem in nums: if elem not in res: res.append(elem) print(len(res))

Источник: ru.stackoverflow.com

Решение простых задач на python | Даны три целых числа. Найти количество положительных чисел #python

ПИТОН
Напишите программу, которая сортирует массив целых чисел и определяет количество различных значений в нём.

Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 1000 .

Выходные данные
Программа должна вывести в первой строке элементы массива, отсортированного в порядке возрастания, а во второй строке – количество различных чисел в массиве.

Читайте также:
Проектирование интерфейса программы это

Примеры
входные данные
6
6 2 1 3 6 2
выходные данные
1 2 2 3 6 6
4

nekitoss: Т. е. вы хотите задать размер массива например 6 чисел и чтобы при задании чисел вам автоматически при вводе больше 6 чисел выдавался результат первых 6 чисел? Это сложно и даже вот это одно условие не для 9 класса. Условие очень сложное, уточните пожалуйста условие.

nekitoss: Что если вы введете размер 900 чисел, а запишете всего 899, что с последним числом, что там должно вывестись? ошибка?

Dreamtown03: Это задание для 10 класса. Нет, здесь считается, что количество введенных чисел равно N b jib,jr ,snm yt vj;tn

Dreamtown03: и ошибок быть не может*

nekitoss: Т.е. вы хотите сказать что если вы ввели количество чисел равное 800, то вы и введете 800 чисел не больше, не меньше?

Dreamtown03: Да

Dreamtown03: при проверке программы компьютер сам подбирает значения, так что никому не придется вводить 800 чисел, нужно лишь только решение, а вернее, сама программа

Источник: sous-otvet.net

Программа которая сортирует массив и находит количество различных чисел в нем питон

Вопрос по информатике:

(PYTHON. )
Отсортировать массив и найти количество различных чисел в нем.

Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?

Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок — бесплатно!

  • bookmark_border
  • 09.07.2018 03:53
  • Информатика
  • remove_red_eye 6817
  • thumb_up 33
Ответы и объяснения 1

mas = [int(i) for i in input(‘Введите массив : ‘).split()]
mas.sort()
print(mas)
for i in mas:
if mas.count(i) == 1:
print(i,’ ‘)

  • 01.01.1970 00:00
  • thumb_up 19
Знаете ответ? Поделитесь им!

Как написать хороший ответ?

Чтобы добавить хороший ответ необходимо:

  • Отвечать достоверно на те вопросы, на которые знаете правильный ответ;
  • Писать подробно, чтобы ответ был исчерпывающий и не побуждал на дополнительные вопросы к нему;
  • Писать без грамматических, орфографических и пунктуационных ошибок.
Читайте также:
Программы стиральной машины индезит wisl 103

Этого делать не стоит:

  • Копировать ответы со сторонних ресурсов. Хорошо ценятся уникальные и личные объяснения;
  • Отвечать не по сути: «Подумай сам(а)», «Легкотня», «Не знаю» и так далее;
  • Использовать мат — это неуважительно по отношению к пользователям;
  • Писать в ВЕРХНЕМ РЕГИСТРЕ.
Есть сомнения?

Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.

Трудности с домашними заданиями? Не стесняйтесь попросить о помощи — смело задавайте вопросы!

Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.

Источник: online-otvet.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru