Python помогите решить

denn4ik83

Новичок
Пользователь
Фев 6, 2022
4
0
1
Всем привет.
Я новенький в Paython, помогите пожалуйста решить задание, пару дней бьюсь.
Надо найти самую длинную строку четных чисел.
Пример:
L1=[1,2,3,6,8,4,3,8,6,4,2,6]
Возвращает :
[8,6,4,2,6]

Спасибо
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Надо найти самую длинную строку четных чисел.
Вот пример:
Python:
lst = [1, 2, 3, 6, 8, 4, 3, 8, 6, 4, 2, 6]
max_even_lst = []  # максимальный список четных чисел
even_lst = []  # список четных чисел
# проходим по списку в цикле
for i in lst:
    # если число четное
    if i % 2 == 0:
        # добавляем его в список четных чисел
        even_lst.append(i)
    else:
        # если нет - обнуляем список четных чисел
        even_lst = []
    # если длина списка четных чисел больше длины максимального списка
    if len(even_lst) > len(max_even_lst):
        # записываем четный список в максимальный
        max_even_lst = even_lst

# выводим максимальный список в консоль
print(max_even_lst)  # [8,6,4,2,6]
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
26
28
Paython!=Python
лучше называть Не с большой буквы
Код:
l = [1, 2, 3, 6, 8, 4, 3, 8, 6, 4, 2, 6]
есть мысли как решать?
 

denn4ik83

Новичок
Пользователь
Фев 6, 2022
4
0
1
Может проверить как то каждую цифру на четность и создавать списки с четными цифрами. Например первая чётная, вторая четная и как только он видит не четную, создает список. Потом сравниваем списки и выводим с больших количеством цифр.
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
26
28
кажется нужно идти от самой длины к нулю
то есть в данном случае проверить 12 - все ли чётные
если нет, тогда 11 и до нуля
если да-брекнуть
одним словом Не в одну строку будет решение...........
 

denn4ik83

Новичок
Пользователь
Фев 6, 2022
4
0
1
кажется нужно идти от самой длины к нулю
то есть в данном случае проверить 12 - все ли чётные
если нет, тогда 11 и до нуля
если да-брекнуть
одним словом Не в одну строку будет решение...........
Да, но список может быть с другими цифрами
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
26
28
len(l) и по-моему + 1-проверьте
Код:
l = [1, 2, 3, 6, 8, 4, 3, 8, 6, 4, 2, 6]
len(l)
 

denn4ik83

Новичок
Пользователь
Фев 6, 2022
4
0
1
Вот пример:
Python:
lst = [1, 2, 3, 6, 8, 4, 3, 8, 6, 4, 2, 6]
max_even_lst = []  # максимальный список четных чисел
even_lst = []  # список четных чисел
# проходим по списку в цикле
for i in lst:
    # если число четное
    if i % 2 == 0:
        # добавляем его в список четных чисел
        even_lst.append(i)
    else:
        # если нет - обнуляем список четных чисел
        even_lst = []
    # если длина списка четных чисел больше длины максимального списка
    if len(even_lst) > len(max_even_lst):
        # записываем четный список в максимальный
        max_even_lst = even_lst

# выводим максимальный список в консоль
print(max_even_lst)  # [8,6,4,2,6]
Большое Спасибо (y)
 

Форум IT Специалистов