Как узнать индекс максимального элемента в списке python
Перейти к содержимому

Как узнать индекс максимального элемента в списке python

  • автор:

Как найти позицию максимального элемента в списке?

Сначала думал что-то с enumerate сделать, но в итоге отказался от этой затеи т.к. элементарно не пошло.

Andrey_Belov

Андрей Белов @Andrey_Belov

Лучше использовать enumerate:

for i, v in enumerate(z): if v > max_v: max_v = v max_i = i

Вариант без цикла:

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

Rsa97

Для правильного вопроса надо знать половину ответа

Ошибка в алгоритме — s и b должны инициализироваться до начала цикла.
Ошибка в логике — максимальный элемент может быть и меньше 0. Лучше будет s = -maxint-1 если речь о целых числах

Как узнать индекс максимального элемента в списке python

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Определить позицию максимального элемента массива, состоящем из числовых значений

Определить позицию максимального и минимального элемента списка за 1 рекурсию
Ребят, вот такая вот задачка: определить позицию максимального и минимального эл-та списка за 1.

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

В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива
в одномерном массиве состоящем из N целых элементов вычислить 1. номер максимального элемента.

В одномерном массиве, состоящем из N целых элементов, вычислить номер максимального элемента массива
Здравствуйте!) Очень нужна помощь знающих людей! В одномерном массиве, состоящем из N целых.

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

245 / 55 / 6
Регистрация: 05.08.2010
Сообщений: 222

1 2 3 4 5 6
a=[1,3,6,8,3,23,6,8,5,3,45,6,8,5,3] max = a[0] pos = 0 for i in range(len(a)): if a[i]>max: max=a[i];pos=i print "max=",max,", pos=",pos

Добавлено через 39 секунд
если считать позиции от нуля, если от 1, то в полследней строчке

print "max=",max,", pos=",pos+1

Заблокирован
Functional Gods Here

1 2 3 4
from itertools import count, izip lst = [1,3,6,8,3,23,6,8,5,3,45,6,8,5,3] print max(izip(lst, count()))[1]

245 / 55 / 6
Регистрация: 05.08.2010
Сообщений: 222

согласен, но ты думаешь, если человек обращается с такой просьбой, то он поймет это? =) а так, да — я тоже за краткость и функциональные свойства питона =)

Добавлено через 2 минуты
И кстати —

1 2 3 4
Traceback (most recent call last): File "test3.py", line 11, in module> print max(izip(lst, count()))[1] TypeError: 'int' object is not callable

Добавлено через 10 минут
Сорри за загон =))) добавил к проге, где max уже определен был =)))
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
Определить позицию максимального элемента массива

1 2 3 4 5 6
>>> lst = [1, 3, 6, 8, 3, 23, 6, 8, 5, 3, 45, 6, 8, 5, 3] >>> print(lst.index(max(lst))) 10 >>> print(lst.index(max(lst)) + 1) 11 >>>

4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
245 / 55 / 6
Регистрация: 05.08.2010
Сообщений: 222

ЦитатаСообщение от accept Посмотреть сообщение

print(lst.index(max(lst)))

=))) перемудрили чет мы =)
Регистрация: 16.09.2013
Сообщений: 7

Подскажите пожалуйста, а как узнать позицию максимального элемента для двумерного массива? Пробую сделать так:

print(Koef.index(Koef.max()))
1 2 3 4
Traceback (most recent call last): File "", line 1, in module> print(Koef.index(Koef.max())) AttributeError: 'numpy.ndarray' object has no attribute 'index'

Хотя вот для такого одномерного массива как писали выше работает:

ЦитатаСообщение от accept Посмотреть сообщение

>>> lst = [1, 3, 6, 8, 3, 23, 6, 8, 5, 3, 45, 6, 8, 5, 3]
>>> print(lst.index(max(lst)))
10
>>> print(lst.index(max(lst)) + 1)
11
>>>

2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
bigsamq, нужно вот так:

1 2 3 4
>>> array = [1, 2, 4, 15, 25] >>> array.index(max(array)) 4 >>>

55 / 55 / 16
Регистрация: 25.03.2013
Сообщений: 178

tsar925, я так понял он имел ввиду для двухмерного массива(листа). или для двухмерного тоже подходит?

Регистрация: 16.09.2013
Сообщений: 7

ЦитатаСообщение от Zarex Посмотреть сообщение

я так понял он имел ввиду для двухмерного массива(листа). или для двухмерного тоже подходит?

Увы, не подходит. Возможно это имеет значение: двумерный массив создавался при помощи numpy, тип данных в нем float64, размеры в районе 200+ на 200+, сами элементы в диапазоне от 0.5 до 1

2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
bigsamq,

1 2 3 4 5
import numpy array = numpy.array([[1, 2, 4, 5], [189, 862]]) max_array = max(array) print(max_array.index(max(max_array)))

Находит вложенный массив с максимальным значением и выводит индекс по которому располагается максимальный элемент. Так надо было?

Регистрация: 15.10.2015
Сообщений: 173

Как поменять один элемент массива на другой фрагмент с помощью numpy? Вот, допустим я хочу поменять элемент с индексом 1 — указан жирным шрифтом на элемент — см ниже — указан красным

[[0 1 1 1 0]
[0 1 0 1 0]
[0 1 1 1 0]
[0 0 1 1 0]
[0 1 0 1 0]]

Добавлено через 1 час 59 минут
Вроде бы есть идея, но не работает

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
group = np.array( [[[0,0,1,0,0], [0,1,0,1,0], [0,1,0,1,0], [0,1,0,1,0], [0,0,1,0,0]], [[0,0,1,0,0], [0,1,1,0,0], [0,0,1,0,0], [0,0,1,0,0], [0,1,1,1,0]], [[0,1,1,0,0], [0,1,0,1,0], [0,0,1,0,0], [0,1,0,0,0], [0,1,1,1,0]], [[0,1,1,1,0], [0,0,1,0,0], [0,1,1,1,0], [0,0,0,1,0], [0,1,1,1,0]], [[0,0,1,1,0], [0,1,0,1,0], [0,1,1,1,0], [0,0,0,1,0], [0,0,0,1,0]], [[0,1,1,1,0], [0,1,0,0,0], [0,1,1,1,0], [0,0,0,1,0], [0,1,1,1,0]], [[0,0,0,1,0], [0,0,1,0,0], [0,1,1,1,0], [0,1,0,1,0], [0,1,1,1,0]], [[0,1,1,1,0], [0,0,0,1,0], [0,0,1,0,0], [0,1,0,0,0], [0,1,0,0,0]], [[0,1,1,1,0], [0,1,0,1,0], [0,0,1,0,0], [0,1,0,1,0], [0,1,1,1,0]], [[0,1,1,1,0], [0,1,0,1,0], [0,1,1,1,0], [0,0,1,1,0], [0,1,0,1,0]]]) a1=[[1 1 0 1 0] [0 0 0 0 0] [0 0 1 1 1] [1 0 1 0 1] [0 0 0 1 0]] dataSetSize = group.shape[0] def tile(self, your_array, (your_database, n)): m=your_database[:] for i in range(n):#Организую временный список с индексами для присваивания к элементу массива. Хотя, в принципе это не столь целесообразно, т.к. передо мной массив, с индексами 0. 9 newarr=map(lambda m[i]:your_array, m).np.array#Хочу заменить i-ый элемент массива m на другой элемент - массив your_array return newarr#Хочу вернуть все 10 (0. 9) массивов с your_array в каждом месте, где произвожу замену print newarr s=tile(a1,(dataSetSize, 10))3#подставив значения уменя это неполучилось т.к. ошибка в функции tile на newarr=map((lambda m[i]:your_array, m).np.array

Добавлено через 9 минут
И мне нужно каждый из полученных массивов вернуть поочередно для выполнения вычитания другим массивом.
Допустим что

l=s-group

Я получу свои 10 вычтенных массивов?

Добавлено через 9 часов 50 минут
Решил вычитать просто элемент — массив your_array , который задается в функции tile массив из заданного элемента в your_database. Но python придирается на отсутствие long’ object has no attribute ‘__getitem__’ в yy=m.__getitem__(i)

1 2 3 4 5 6 7
def tile(your_array, your_database, n): m=your_database for i in range(n): yy=m.__getitem__(i) newarr=your_array - yy return newarr print newarr

Так эта функция тоже не работает:

1 2 3 4 5 6
def tile(your_array, your_database, n): m=your_database[:] for i in range(n): newarr=your_array - m[i] return newarr print newarr

Поиск максимального значения в списке на Python

В этой статье мы научимся находить максимальное значение в списке на Python. Для всестороннего понимания вопроса мы рассмотрим использование некоторых встроенных функций, простые подходы, а также небольшие реализации известных алгоритмов.

Сначала давайте вкратце рассмотрим, что такое список в Python и как найти в нем максимальное значение или просто наибольшее число.

Список в Python

В Python есть встроенный тип данных под названием список (list). По своей сути он сильно напоминает массив. Но в отличие от последнего данные внутри списка могут быть любого типа (необязательно одного): он может содержать целые числа, строки или значения с плавающей точкой, или даже другие списки.

Хранимые в списке данные определяются как разделенные запятыми значения, заключенные в квадратные скобки. Списки можно определять, используя любое имя переменной, а затем присваивая ей различные значения в квадратных скобках. Он является упорядоченным, изменяемым и допускает дублирование значений. Например:

 
list1 = ["Виктор", "Артем", "Роман"] list2 = [16, 78, 32, 67] list3 = ["яблоко", "манго", 16, "вишня", 3.4]

Далее мы рассмотрим возможные варианты кода на Python, реализующего поиск наибольшего элемента в списке, состоящем из сравниваемых элементов. В наших примерах будут использоваться следующие методы/функции:

  1. Встроенная функция max()
  2. Метод грубой силы (перебора)
  3. Функция reduce()
  4. Алгоритм Heap Queue (очередь с приоритетом)
  5. Функция sort()
  6. Функция sorted()
  7. Метод хвостовой рекурсии

№1 Нахождение максимального значения с помощью функции max()

Это самый простой и понятный подход к поиску наибольшего элемента. Функция Python max() возвращает самый большой элемент итерабельного объекта. Ее также можно использовать для поиска максимального значения между двумя или более параметрами.

В приведенном ниже примере список передается функции max в качестве аргумента.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *