Страницы

Поиск по вопросам

понедельник, 10 декабря 2018 г.

Есть число в списке и нужно вывести соседние от него числа (слева и справа)

Есть список из чисел, я нашел в нем число с максимальным значением и хочу вывести соседние от него числа. Одно слева и одно справа. Не знаю, как их обозначить.
def A(linst) : v_max = max(linst) z = [x for x in enumerate(linst)] for i in z : if v_max in i and # finish


Ответ

Если макс число 0 индекс, то слева от него будет считаться последнее число списка, тоже самое и для если макс число последнее в списке:
def foo(numbers: list) -> tuple: max_num = max(numbers)
index_max_num = numbers.index(max_num)
left_index = index_max_num - 1 # Индекс последнего элемента if left_index < 0: left_index = len(numbers) - 1
right_index = index_max_num + 1 # Индекс первого элемента if right_index >= len(numbers): right_index = 0
return numbers[left_index], max_num, numbers[right_index]
print(foo([3, 6, -2, -6, 8, 3])) # (-6, 8, 3)
print(foo([1, 2, 3, 4, 5])) # (4, 5, 1) print(foo([1, 3, 5, 9, 2])) # (5, 9, 2) print(foo([5, 3, 1, 4, 2])) # (2, 5, 3)

Комментариев нет:

Отправить комментарий