Найти числа между максимальным и минимальным в списке
Имеется массив A из N произвольных чисел. Найти максимальное и минимальное число. Напечатать те элементы массива, которые находятся между ними. Я только учусь и поэтому смог только написать это:
A = []
N = int(input('Сколько в массиве будет элементов '))
for i in range(N):
A.append(int(input()))
a1 = max(A)
a2 = min(A)
Ответы (2 шт):
array = []
n = int(input('Сколько в массиве будет элементов '))
for i in range(n):
array.append(int(input(f'{i+1}-е число: ')))
допустим, после заполнения вы получили такой список:
[3, 5, -1, 2, 13, 42, 3, 7, 1]
вам нужны индексы минимального и максимального элемента:
index_min = index_max = 0
value_min = value_max = array[0]
for i, a in enumerate(array[1:], 1):
if a < value_min:
value_min = a
index_min = i
if a > value_max:
value_max = a
index_max = i
зная их, выведите срезом то, что между ними:
>>> print(array[index_min+1:index_max])
[2, 13]
UPD Если индекс минимального элемента может быть больше индекса максимального, перед срезом стОит это проверить:
if index_min < index_max:
print(array[index_min+1:index_max])
else:
print(array[index_max+1:index_min])
Спасибо CrazyElf за уточнение!
A = []
N = int(input('Сколько в массиве будет элементов '))
for i in range(N):
A.append(int(input()))
index_min, index_max = A.index(min(A)), A.index(max(A))
l, r = sorted([index_min, index_max])
print(A[l:r+1])
index_min, index_max = A.index(min(A)), A.index(max(A)) ищет индексы минимума и максимума.
l, r = sorted([index_min, index_max]) упорядочивает индексы минимума и максимума для того, чтобы соотнести их с левой и правой границами среза.