|
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 117
|
|||||||||||
Сортировка с выбором повторов29.07.2019, 13:14. Показов 3637. Ответов 14
Метки нет (Все метки)
Подскажите почему так странно работает?
Задача перебрать числа и вывести те которые повторяются. Дело вот в чем, я так понял в моем цикле идет перебор индексов, а не элементов. НО при этом он выдает элементы, при том что правильно, но только до 10ов. Т.е. вот такое переберет правильно 4 8 0 3 4 2 0 3 а вот такое выдаст #2 12 22 2 12 2 22 12 10 только 2. Я не понимаю почему так. Понял только если я пишу for i in range(len(a)): перебор идет индексов, а если пишу for i in a: идет перебор символов, но тогда выводит все повторяющиеся. Не вот так: 4 8 0 3 4 2 0 3 = 0 3 4 а вот так 0 0 3 3 4 4 Честно не понимаю как решить. Хотел бы спросить ответ НО спрошу только совета, алгоритма, решение готовое не нужно. Помогите)))
Вообщем я крутил вертел и теперь у меня получилось вот такое извращенное решение которое работает со всеми примерами, но некоторые компилятор вместе с ответом выдают ошибку)) Не подскажете что он так ругается на строку условий?
0
|
|||||||||||
| 29.07.2019, 13:14 | |
|
Ответы с готовыми решениями:
14
Сортировка выбором по убыванию и по возрастанию
|
|
|
|||
| 29.07.2019, 13:40 | |||
|
Кстати,
0
|
|||
|
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 117
|
||||||||||||||||
| 29.07.2019, 15:25 [ТС] | ||||||||||||||||
|
dondublon,
По порядку, обучающий курс застрял на задаче, решение в интернете смотреть не хочу (зачем тогда изучать) в рамках проеденного материала была дана задача(где то середина курса тема "списки"). Для входных данных приводятся примерные данные одни из которых я написал выше. Этот пример сортируется отлично 4 8 0 3 4 2 0 3 ответ правильный, но система не принимала код(проверяет по различным тестам, но что не так было не понятно) со временем я дошел до такого теста где получилось так что десятки не сортируются, а значения до 10и сортируются нормально. http://www.pythontutor.com/live.html#mode=edit в дебагере прослеживается что при этой конструкций перебираются не числа списка, а индексы (вроде как или я что то не понимаю)эта конструкция перебирает числа от 0 до 10.
с этой конструкцией я не понимаю почему так работает? почему все числа которые дисятки 22 66 88 и другие пролетают как будь то их нет если я пишу так, то перебор идет по нужным значениям 2 12 22 2 12 2 22 12 10, но в ответ получаю вывод всех повторяющихся элементов сколько повторений столько выводов тут ответ получается 2 2 12 12 12 22 22.
Даже не уверен что вы мне подскажите, как подсказать что бы не решить данный банальный пример(( Добавлено через 1 минуту А при последней конструкций выдается везде нормально только компилятор ругается на строку
с выводом IndexError: list index out of range и там вообще что то много повторных проходов Добавлено через 36 минут Мне кажется что проще у вас уже попросить решение, потому что я что то ни как не могу додумать что не так и как решить.
0
|
||||||||||||||||
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
|
||||||
| 29.07.2019, 15:39 | ||||||
|
в один проход через словарь можно
1
|
||||||
|
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 117
|
|
| 29.07.2019, 15:45 [ТС] | |
|
dondublon, Может да а может, нет. Только более простой способ я бы нашел в интернете. Только смысл был что бы решить тем что есть, а не то что будет. То что вы предлагаете такого не было.
vic5710, Этого тоже не было. Но ладно мне уже эта задача надоела так что путь будет так. Спасибо)
0
|
|
|
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 117
|
|
| 29.07.2019, 20:23 [ТС] | |
|
Я понимаю что вы шипко умный, но насколько я понял
collections это я понял вид словаря который изучается где то дальше, Counter да это счетчик, он используется почти сразу. На основах изучается логика алгоритмов и понятие как пользоваться базовыми функциями. а collections это лазейка упрощение. Так что русский мой родной язык. И еще в данном случае не правильный вывод для меня мне нужен строгий вывод только элементов и ВСЕ. Возможно можно изменить, но это уже другая история..... Counter({1: 5, 2: 3}) Я все подробно объяснил, если вы не поняли....
0
|
|
|
Супер-модератор
|
||||||
| 30.07.2019, 15:48 | ||||||
|
---DEMON---, полностью согласен с dondublon: твои мысли представляют собой кашу... Неужели трудно сформулировать задачу: дан список с повторениями, построить из него список без повторений. Задача элементарная. Решается "на раз" даже без продвинутых премудростей Питона:
https://ideone.com/888tdD:
1
|
||||||
|
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 117
|
|
| 30.07.2019, 15:58 [ТС] | |
|
Catstail, Это все понятно, что решается на раз. Только вот пока в начале что то изучаешь на раз как то не всегда получается, не все так мыслят.
А что касается понятности разве вторая строчка моего первого сообщения Задача перебрать числа и вывести те которые повторяются. не передает тот же смысл что и ваша только ваша формулировка написана более грамотно. И первый мой вопрос был почему мой версий работают не так, а если бы изначально стояла задача решить поставленную задачу, то я бы просто скопировал текст из курса. И да вы решили способом которого в курсе еще не было, в интернете я находил несколько вариантов, только мне надо было самым топорным циклами, тоже просто только я не понял, а потом дошло))) Ладно спасибо и на этом, новое тоже хорошо)
0
|
|
|
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 117
|
|
| 30.07.2019, 20:05 [ТС] | |
|
Catstail, set идет в разделе словарей. А сейчас идут строки. Честно не знаю, так построен курс или так всегда идет по сложности или еще по какой то идеологий лекторов, не знаю..
Но вы то этого не знали и не могли знать) Что тут у меня и когда, я не уточнял что используем только счетчик и цикл, но просил только поправить) Тут многие(в курсе) так решали с помощью словаря setdefault, ollections.Counter, set (я так раньше учился лишь бы решить, результат так себе, теперь решил по другому сделать) просто я решил так курс не проходить "решить любыми средствами" решил послушать лекторов и решать тем что они предоставляют "как будь то гугла нет " но получилось не очень с этой задачей, а до этого получалось)Добавлено через 3 минуты А вот можете подсказать, выше пользователь vic5710 приводил пример со словарем, я что то не нашел в интернете как поменять вывод с данным словарем. Как то можно выводить только числа? Без дописок как сейчас?
0
|
|
|
5224 / 3471 / 1173
Регистрация: 21.03.2016
Сообщений: 8,298
|
|||||||||||||||||||||||||||||||
| 30.07.2019, 20:33 | |||||||||||||||||||||||||||||||
Сообщение было отмечено ---DEMON--- как решение
Решение
---DEMON---, вы просто не понимаете что делает функция range.
допустим у вас список состоит из этих цифр
в итоге в i принимает следущие значения
1
|
|||||||||||||||||||||||||||||||
|
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 117
|
|
| 30.07.2019, 21:14 [ТС] | |
|
Semen-Semenich, Большое спасибо, теперь понятно и да это все было. Я просто не понял как все это обернуть(
Catstail, Да каша. Ну что поделаешь потом приберу)
0
|
|
| 30.07.2019, 21:14 | |
|
Помогаю со студенческими работами здесь
15
Сортировка массива каждым из 3 способов (пузырьковая сортировка, сортировка выбором, сортировка вставкой)
Сортировка одномерного массива разными методами: методом пузырька, сортировка выбором, сортировка включением Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|