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

Поиск отрицательного элемента

24.05.2021, 14:06. Показов 5721. Ответов 9

Author24 — интернет-сервис помощи студентам
Моя программа находит индексы всех отрицательных элементов, а как сделать так чтобы поиск был с конца списка и если нашел один то дальше не искал
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
class Spisok:
 
    def __init__(self, n):
        self.s = []
        # Добавляется n пустых значений списка
        for i in range(n):
            self.s.append(None)
 
        # Пользователь вводит нужные ему значения
        for i in range(n):
            self.s[i] = int(input("Введите элемент списка"))
 
    def NegativeElement(self):
        n = len(self.s)
        NegativeElement = []
        for i in range(n):
            if self.s[i] < 0:
                NegativeElement.append(i)
        print(NegativeElement)
 
 
sp = Spisok(5)
print(sp.s)
sp.NegativeElement()
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2021, 14:06
Ответы с готовыми решениями:

Расстояние до отрицательного элемента
В этой задаче вы можете использовать одномерные массивы (или их аналоги), циклы и операторы...

Сумма элементов расположенных после первого отрицательного элемента
1)Сумма элементов расположенных после первого отрицательного элемента 2)сжать массив удалив таким...

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

В массиве после каждого отрицательного элемента, вставить элемент, равный модулю отрицательного элемента
Нужен код С#

Поиск отрицательного элемента в 2/3 матрицы
Дана матрица 3х3. Найдите первый отрицательный элемент среди элементов матрицы, обозначенные 0....

9
Пора на C++?
370 / 264 / 99
Регистрация: 10.04.2020
Сообщений: 1,275
24.05.2021, 14:59 2
Zoobbl4, зачем вам костыль через свой класс с одним методом и конструктором? Лучше так:
Python
1
2
3
4
5
6
7
8
9
10
11
def find_last_negative(numbers):
    for i in range(len(numbers) - 1, -1, -1):
        if numbers[i] < 0:
            return numbers[i]
 
 
numbers = []
for i in range(5):
    numbers.append(int(input("Введите элемент списка")))
print(numbers)
print(find_last_negative(numbers))
0
0 / 0 / 0
Регистрация: 01.06.2023
Сообщений: 11
01.06.2023, 19:12 3
Не подскажете как найти номер 2 с конца отрицательного элемента?
0
5027 / 3373 / 1155
Регистрация: 21.03.2016
Сообщений: 8,189
01.06.2023, 19:17 4
Цитата Сообщение от Juliiiiaa Посмотреть сообщение
с конца отрицательного элемента?
а как выглядит конец отрицательного элемента?
1
0 / 0 / 0
Регистрация: 01.06.2023
Сообщений: 11
01.06.2023, 19:20 5
Может быть объяснила не правильно.
Вот полный текст задачи: Найдите номер второго с конца отрицательного элемента списка. Если такого элемента нет,
выведите -1.
0
Эксперт Python
4306 / 1857 / 331
Регистрация: 18.01.2021
Сообщений: 3,428
01.06.2023, 19:44 6
Python
1
2
3
4
5
6
def second_negative(lst):
    negative = list(filter(lambda x: x[1] < 0, enumerate(lst)))
    return -1 if len(negative) < 2 else negative[-2][0]
 
print(second_negative([0,1,2,-1,-3,2,-1]))
# 4
Нумерация с нуля

Добавлено через 7 минут
Juliiiiaa, захват темы осуждаю.
Под новую задачу надо заводить новую тему
1
0 / 0 / 0
Регистрация: 01.06.2023
Сообщений: 11
01.06.2023, 19:48 7
Сработало, спасибо огромнейшее!
0
513 / 170 / 53
Регистрация: 12.02.2023
Сообщений: 613
01.06.2023, 19:59 8
Python
1
2
3
4
5
6
7
8
data = [0,1,2,-1,-3,2,-1]
count = 0
ind = []
for i in range(len(data)):
    if data[i] < 0:
        count += 1      
        ind.append(i)
print(ind[count-2] if len(ind) > 0 else '-1')
0
Эксперт Python
4306 / 1857 / 331
Регистрация: 18.01.2021
Сообщений: 3,428
01.06.2023, 20:28 9
s_t_r_a_j, если уж хочется итерироваться, то надо так, чтобы память не расходовать:

Python
1
2
3
4
5
6
7
8
def second_negative_2(lst, k=2):
    counter = 0
    for i, val in enumerate(reversed(lst)):
        if val < 0:
            counter += 1
            if counter == k:
                return len(lst) - i - 1
    return -1
1
513 / 170 / 53
Регистрация: 12.02.2023
Сообщений: 613
01.06.2023, 22:15 10
Red white socks, время выполнения вашего кода по методу timeit при number = 10000 составляет 0.13663680000172462 сек.
моего кода 0.09862769999745069
думаю небольшая разница в мою пользу)

Добавлено через 3 минуты
Цитата Сообщение от Red white socks Посмотреть сообщение
def second_negative_2(lst, k=2):
    counter = 0
    for i, val in enumerate(reversed(lst)):
        if val < 0:
            counter += 1
            if counter == k:
                return len(lst) - i - 1
    return -1
а вот это, кстати, нормуль по времени 0.0012352999983704649 сек.

Добавлено через 1 час 42 минуты
Zoobbl4,
Цитата Сообщение от Zoobbl4 Посмотреть сообщение
чтобы поиск был с конца списка и если нашел один то дальше не искал
Python
1
2
data = [0,1,2,-1,-3,2,18,-9,19,8,9]
print([data.index(i) for i in data[::-1] if i < 0][:1:])
0
01.06.2023, 22:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2023, 22:15
Помогаю со студенческими работами здесь

поиск и замена последнего отрицательного элемента
В одномерном произвольно-заданном массиве C (1x10) поменять местами максимальный элемент с...

Поиск и удаление первого отрицательного элемента в массиве
Совсем не знаю как это делать, пропустил тему! Не хотят допускать до экзаменов, пока не сделаю эту...

Поиск номера первого отрицательного элемента массива
в универе дали лабы на паскале.Увы я его совсем не знаю.Помогите кто может.Я уже из всех сроков...

Поиск первого отрицательного элемента в двумерном массиве (матрице)
Дана матрица MxN (где M, N&lt;=10). Найти первый отрицательный элемент при прохождении по столбцам и...

Поиск первого отрицательного элемента списка: программа завершает работу
Создал однонаправленный список из вещественных чисел. ищу первый отрицательный элемент. При вводе...

Найти номер первого отрицательного и последнего отрицательного элемента массива
Заполнить одномерный массив целыми числами. Вычислить номер первого отрицательного и последнего...


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

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