Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.03.2017
Сообщений: 30
1

Сортировка списка

16.05.2019, 00:33. Показов 1697. Ответов 5
Метки нет (Все метки)

я не могу решить задачу. На вход поступает список такого рода

[0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

почти все элементы равны 0. Нужно вывести самый маленький элемент кроме нуля.

Как это сделать я не знаю.

хочу убрать все нули и после отсортировать. такой код был:

for i in range(len(b)):
if b[i]==0:
b.pop(i)


b - это мой список. Хотел удалить из него все нули, но ничего не выходит


вылазит какая-то ошибка.... не понимаю, что не так

сама ошибка:

if b[i]==0: IndexError: list index out of range
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2019, 00:33
Ответы с готовыми решениями:

Сортировка списка
Добрый день уважаемые форумчане. У меня вопрос. Есть некий список как его отсортировать по дате...

Сортировка списка
Есть вот такой список, как его отсортировать в порядке убывания по последнему числу в каждом...

Сортировка списка
Здравствуйте, имею подобный список , , , ]. Подскажите, как его можно отсортировать? Мне важно...

Сортировка списка
Есть список list=, , , ...] Как отсортировать его по цифрам по убыванию, не трогая при этом слова?

5
1268 / 657 / 361
Регистрация: 07.01.2019
Сообщений: 2,164
16.05.2019, 00:38 2
Лучший ответ Сообщение было отмечено Alex_121 как решение

Решение

Python
1
2
3
lst = [0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
 
print(min(filter(lambda x: x != 0, lst)))
0
0 / 0 / 0
Регистрация: 11.03.2017
Сообщений: 30
16.05.2019, 00:46  [ТС] 3
а как вывести именно индекс элемента ? вот мы нашли с этой функцией нашу единицу и нужно вывести ее индекс из этого списка
0
1268 / 657 / 361
Регистрация: 07.01.2019
Сообщений: 2,164
16.05.2019, 00:59 4
Python
1
2
3
4
lst = [0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
 
mn = min(filter(lambda x: x != 0, lst))
print(f'Минимальный элемент {mn} его индекс {lst.index(mn)}')
0
479 / 335 / 158
Регистрация: 28.05.2012
Сообщений: 1,170
16.05.2019, 04:28 5
Цитата Сообщение от Alex_121 Посмотреть сообщение
хочу убрать все нули и после отсортировать.
Python
1
2
lst = [0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
print(lst.index([i for i in sorted(set(lst)) if i > 0][0]))
0
Эксперт Python
4491 / 1922 / 346
Регистрация: 17.03.2012
Сообщений: 9,776
Записей в блоге: 5
16.05.2019, 10:04 6
Alex_121, а сортировка-то тут при чём?
Ваша задача решается просто в лоб, без сортировки, за один проход.

Добавлено через 1 минуту
Цитата Сообщение от Alex_121 Посмотреть сообщение
вылазит какая-то ошибка.... ну пиз*ц просто , не понимаю, что не так
сама ошибка:
if b[i]==0: IndexError: list index out of range
Попрошу не материться.
Конечно, вылазит, потому что длина списка уменьшается.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2019, 10:04

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Сортировка списка
ребят подскажите пожалуйста как сравнить два таких списка и сделать 1 список но только с...

Сортировка списка кортежей
Помогите разобраться как лучше реализовать сортировку списка кортежей с помощью сортировки по...

Сортировка списка с кортежами по цифрам
Дается следующий список: z = Нужно отсортировать список по 3 значению кортежа по возрастанию....

Быстрая сортировка двусвязного списка
Требуется реализовать алгоритм быстрой сортировки на двусвязном списке. Программу сделал, но она...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.