Найдите наибольшее число в списке чисел


93

Есть ли простой способ или функция для определения наибольшего числа в списке Python? Я мог бы просто закодировать его, так как у меня всего три числа, однако это сделало бы код намного менее избыточным, если бы я мог сказать самое лучшее с помощью встроенной функции или чего-то еще.

Ответы:



18

Вы можете использовать встроенную функцию max()с несколькими аргументами:

print max(1, 2, 3)

или список:

list = [1, 2, 3]
print max(list)

или на самом деле что-нибудь повторяющееся.


3
Нехорошо называть переменные встроенным ключевым словом python по умолчанию, которое перезаписывает фактическое ключевое слово (вы должны это знать) :-)
U10-Forward

16

Этот подход без использования max()функции

a = [1,2,3,4,6,7,99,88,999]
max_num = 0
for i in a:
    if i > max_num:
        max_num = i
print(max_num)

Также, если вы хотите найти индекс результирующего максимума,

print(a.index(max_num))

Прямой подход с использованием функции max ()

Функция max () возвращает элемент с наивысшим значением или элемент с наивысшим значением в итерируемом

Пример: когда вам нужно найти максимум целых чисел / чисел

a = (1, 5, 3, 9)
print(max(a))
>> 9

Пример: когда у вас есть строка

x = max("Mike", "John", "Vicky")
print(x)
>> Vicky

По сути, он возвращает имя с наивысшим значением, упорядоченное в алфавитном порядке.


2
Почему вы никогда не сможете использовать функцию max?
Крис Фостер

3
Я написал это для тех людей, которые готовятся к собеседованию, где вопрос состоит в том, чтобы найти максимум списка без использования функции max. Если вы чувствуете, что это хорошо для собеседования, пожалуйста, проголосуйте за
Chetan_Vasudevan

2
Если вам нужен индекс максимума, возможно? Затем вы просто включите idx var в строку for.
Кит Пламмер

1
Не используйте maxв качестве имени переменной, потому что это имя встроенной функции.
wjandrea


2

max - встроенная функция в Python, которая используется для получения максимального значения из последовательности, то есть (список, кортеж, набор и т. д.)

print(max([9, 7, 12, 5]))

# prints 12 

2

Вы действительно можете отсортировать это:

sorted(l,reverse=True)

l = [1, 2, 3]
sort=sorted(l,reverse=True)
print(sort)

Вы получаете:

[3,2,1]

Но все же, если хотите получить максимум, сделайте:

print(sort[0])

Вы получаете:

3

если второй макс:

print(sort[1])

и так далее...


1
Сортировка списка - более сложная операция O (n log n), чем просто получение максимального значения O (n),
Аллан

-6
    #Ask for number input
first = int(raw_input('Please type a number: '))
second = int(raw_input('Please type a number: '))
third = int(raw_input('Please type a number: '))
fourth = int(raw_input('Please type a number: '))
fifth = int(raw_input('Please type a number: '))
sixth = int(raw_input('Please type a number: '))
seventh = int(raw_input('Please type a number: '))
eighth = int(raw_input('Please type a number: '))
ninth = int(raw_input('Please type a number: '))
tenth = int(raw_input('Please type a number: '))

    #create a list for variables
sorted_list = [first, second, third, fourth, fifth, sixth, seventh, 
              eighth, ninth, tenth]
odd_numbers = []

    #filter list and add odd numbers to new list
for value in sorted_list:
    if value%2 != 0:
        odd_numbers.append(value)
print 'The greatest odd number you typed was:', max(odd_numbers)

3
1) нет причин не делать my_list = sorted ([int (raw_input ('Пожалуйста, введите число')) для _ в xrange (10)) вместо того, чтобы вводить лишний материал. 2) у вас есть список с именем sorted_list, но вы на самом деле его не сортируете 3) В вопросе ничего не говорится о фильтрации только нечетных чисел 4) Что это означает, что предыдущие ответы 5 лет назад этого не сделали (кроме ответа на вопрос, который не задавали, и в менее элегантной форме)
Foon
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.