Есть список из чисел, я нашел в нем число с максимальным значением и хочу вывести соседние от него числа. Одно слева и одно справа. Не знаю, как их обозначить.
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)
Комментариев нет:
Отправить комментарий