Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 25.02.2021
Сообщений: 15

Переставить элементы так, чтобы все положительные стояли в начала массива, а все отрицательные и нули – в конце

16.03.2021, 19:05. Показов 7232. Ответов 6

Студворк — интернет-сервис помощи студентам
Суть программы:

Заполнить массив случайными числами в интервале [-100,100] и переставить элементы так, чтобы все положительные элементы стояли в начала массива, а все отрицательные и нули – в конце. Вычислите количество положительных элементов.
Пример:
Массив:
20 -90 15 -34 10 0
Результат:
20 15 10 -90 -34 0
Количество положительных элементов: 3

Программа готова,НО как сделать чтобы 0 был по середине?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from random import randint
 
n = int(6)
a = [0] * n
for i in range(n):
    a[i] = randint(-100, 100)
print('Массив', a)
 
colvo_chicel = len(a)
chicla_v_conce = 0
i = 0
 
while i < colvo_chicel - chicla_v_conce:
    if a[i] <= 0:
        a.append(a.pop(i))
        chicla_v_conce += 1
        i -= 1
    i += 1
 
print('Результат', a)
print('Количество положительных элементов: ', i)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2021, 19:05
Ответы с готовыми решениями:

Переставить элементы, чтобы все положительные элементы стояли в начале массива, а все отрицательные и нули - в конце
«C»: Заполнить массив случайными числами в интервале и переставить элементы так, чтобы все положительные элементы стояли в начала...

Упорядочить массив, чтобы все положительные элементы стояли в начале, а все отрицательные и нули - в конце
Заполнить массив случайными числами в интервале и переставить элементы так, чтобы все положительные элементы стояли вначале массива, а все...

Переставить элементы массива так, чтобы в начале массива располагались все отрицательные, а в конце - положительные
Дан массив чисел. Переставить элементы массива так, чтобы в начале массива располагались все отрицательные, а в конце массива все ...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
16.03.2021, 19:07
Цитата Сообщение от god 2 Посмотреть сообщение
НО как сделать чтобы 0 был по середине?
ну как как - рабить список на 2, в первом положительные, во втором все отрицательные, затем все это собрать в новый список, где сначала закинуть первый список, потом ноль или ноли, потом второй список.
0
0 / 0 / 0
Регистрация: 25.02.2021
Сообщений: 15
16.03.2021, 19:16  [ТС]
Welemir1, помоги пожалуйста, напиши это всё вместе
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
16.03.2021, 19:29
god 2, сойдет?

Python
1
2
3
4
>>> initial = [20, -90, 15, -34, 10, 0]
>>> result = [*list(e for e in initial if e>0),0,*list(e for e in initial if e<0)]
>>> result
[20, 15, 10, 0, -90, -34]
0
0 / 0 / 0
Регистрация: 25.02.2021
Сообщений: 15
16.03.2021, 19:48  [ТС]
Welemir1, так 0 разве в таком случае не всегда будет добавляться? я плохо забираюсь, кому не сложно можете скинуть всю эту программу, но доделанную
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
16.03.2021, 19:49
Лучший ответ Сообщение было отмечено Welemir1 как решение

Решение

Старый джавский хак с компаратором
Python
1
2
3
lst = [20, -90, 15, -34, 10, 0]
lst.sort(key=lambda x: x < 0)
print(lst)
Bash
1
[20, 15, 10, 0, -90, -34]
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
16.03.2021, 19:51
iSmokeJC, да четко!

Цитата Сообщение от god 2 Посмотреть сообщение
так 0 разве в таком случае не всегда будет добавляться?
это я погорячился

Python
1
2
3
4
>>> initial = [20, -90, 15, -34, 10, 0]
>>> result = [*list(e for e in initial if e>0),*list(e for e in initial if e==0),*list(e for e in initial if e<0)]
>>> result
[20, 15, 10, 0, -90, -34]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.03.2021, 19:51
Помогаю со студенческими работами здесь

Переставить элементы массива так, чтобы нули в каждой строке стояли в конце
Такая вот задачка на : 1) Создать массив: 1 0 2 0 0 3 0 4 2 0 3 0 0 4 0 1 2) Переставить элементы...

Переставить числа в массивах так, чтобы в начале оказались все положительные элементы, а в конце отрицательные
Заданы три одномерных масива.Переставиты числа в массивах таким образом, чтобы в начале массивов оказались все положительные элементы, а в...

Переставить элементы массива так, чтобы сначала были расположены все положительные элементы, затем все отрицательные
import numpy as np from array import * from random import randint n = int(input(&quot;Введіть кількість елементів масиву : &quot;)) x =...

Переставить элемента массива, так чтобы сначала было расположены все положительные элементы, потом все отрицательные
Всем добрый вечер! Есть задача: Кто знает как ее решить - помогите, с меня спасибо:)

Массив: переставить элементы таким образом, чтобы сначала были записаны все положительные, затем все отрицательные, а потом все нули.
Здравствуйте! помогите пожалуйста с задачей по информатике. Буду очень благодарна) В массиве из вещественных чисел переставить...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru