Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 19
1

Удалить в списке все цепочки отрицательных элементов, расположенные между положительными

06.11.2018, 20:36. Показов 4393. Ответов 1

Author24 — интернет-сервис помощи студентам
В одномерном списке A=(a1, а2, ..., аn) удалить все цепочки отрицательных элементов, расположенные между положительными.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2018, 20:36
Ответы с готовыми решениями:

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

В одномерном массиве удалить все отрицательные элементы, расположенные между положительными
В одномерном массиве A=(a1, а2, ..., аn) удалить все отрицательные элементы, расположенные между...

В одномерном массиве удалить все отрицательные элементы, расположенные между положительными
В одномерном массиве A(N) удалить все отрицательные элементы, расположенные между положительными.

Удалить из файла все числа, расположенные между первым и последним положительными компонентами
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <time.h>...

1
117 / 101 / 53
Регистрация: 13.04.2014
Сообщений: 233
06.11.2018, 21:51 2
Возможно код нуждается в небольшой доработке (например, что делать с нулём), но надеюсь общая идея понятна.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
a = [-3, -5, 5, 6, -7, 6, -8, 7, -4, 5, 6, -6, -3]
 
 
def func(lst):
    start = end = None
    for index, elem in enumerate(lst):
        if elem >= 0:
            start = index
            break
    if start is None:
        return lst
    for index, elem in enumerate(lst[::-1], 1):
        if elem >= 0:
            end = len(lst) - index
            break
    return lst[:start] + [elem for elem in lst[start:end] if elem >= 0] + lst[end:]
 
 
print(func(a))
Добавлено через 12 минут
Вот вариант с более осмысленной обработкой нулевых значений
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
a = [-3, -5, 5, 6, -7, 0, 6, -8, 7, 0, -4, 5, 6, -6, -3]
 
 
def func(lst):
    chain = False
    result = []
    cash = []
    for elem in lst:
        if elem > 0:
            chain = True
            cash.clear()
            result.append(elem)
        elif elem < 0:
            if chain:
                cash.append(elem)
            else:
                result.append(elem)
        elif elem == 0:
            result.extend(cash)
            chain = False
            result.append(elem)
    result.extend(cash)
    return result
 
 
print(func(a))
0
06.11.2018, 21:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2018, 21:51
Помогаю со студенческими работами здесь

В динамическом списке найти первый наименьший и последний наибольший элементы и удалить все элементы, расположенные между ними.
Дан список из целых чисел, найти первое из всех минимальных значений и последнее из всех...

Упорядочить элементы, расположенные между первыми и вторым положительными элементами по убыванию значений элементов
Дан массив А размера N. Упорядочить элементы, расположенные между первыми и вторым положительными...

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

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

Найдите сумму отрицательных элементов массива, стоящих между первым и последним положительными элементами
Дан одномерный целочисленный массив порядка N. Найдите сумму отрицательных элементов массива...

Удалить все символы, расположенные между скобками.
В данном тексте удалить все символы, расположенные между скобками ( ). Скобки тоже исключить....

Удалить из текста все символы, расположенные между k-м и t-м индексами
Дан текст. Удалить из него все символы, расположенные между k-м и t-м индексами (k и t -целые)....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru