Bir sayı listesindeki en büyük sayıyı bulun


93

Bir python listesindeki en büyük sayıyı belirlemenin kolay bir yolu veya işlevi var mı? Sadece üç numaram olduğu için onu kodlayabilirim, ancak yerleşik bir işlevle veya başka bir şeyle en büyüğünü söyleyebilseydim kodu çok daha az gereksiz hale getirirdi.

Yanıtlar:



18

Dahili işlevi max()birden çok bağımsız değişkenle kullanabilirsiniz:

print max(1, 2, 3)

veya bir liste:

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

ya da aslında yinelenebilir bir şey.


3
Değişkenleri, gerçek anahtar kelimenin üzerine yazan varsayılan bir yerleşik python anahtar kelimesi olarak adlandırmak iyi değildir, (bunu bilmelisiniz) :-)
U10-Forward

16

Bu yaklaşım max()işlevi kullanmadan

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)

Ayrıca, sonuçta elde edilen maksimumun dizinini bulmak istiyorsanız,

print(a.index(max_num))

Max () fonksiyonunu kullanarak doğrudan yaklaşım

max () işlevi, en yüksek değere sahip öğeyi veya yinelemeli olarak en yüksek değere sahip öğeyi döndürür

Örnek: tamsayılarda / sayılarda maks bulmanız gerektiğinde

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

Örnek: dizeniz olduğunda

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

Temel olarak alfabetik olarak sıralanmış en yüksek değere sahip adı döndürür.


2
Neden max işlevini kullanamayasınız?
Chris Foster

3
Bu yüzden bunu, mülakata hazırlanan insanlar için yazdım, burada soru max fonksiyonunu kullanmadan maksimum bir liste bulmaktır. Eğer röportaj için iyi hissediyorsanız lütfen oy verin
Chetan_Vasudevan

2
Belki de maks indeksine ihtiyacınız varsa? Daha sonra for satırına sadece idx varlığını dahil edersiniz.
Kit Plummer

1
maxBir değişkenin adı olarak kullanmayın , çünkü bu bir yerleşikin adıdır.
wjandrea

11

Kullanım max()

>>> l = [1, 2, 5]
>>> max(l)
5
>>> 

2

max python'da bir diziden maksimum değeri almak için kullanılan yerleşik bir işlevdir, yani (liste, tuple, set, vb.)

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

# prints 12 

2

Aslında sıralayabilirsiniz:

sorted(l,reverse=True)

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

Sen alırsın:

[3,2,1]

Ancak yine de maksimum değeri elde etmek istiyorsanız:

print(sort[0])

Sen alırsın:

3

ikinci maksimum ise:

print(sort[1])

ve bunun gibi...


1
Bir listeyi sıralamak, maksimum O (n) değerini elde etmekten daha karmaşık bir O (n log n) işlemidir
Allan

-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) xrange (10) içinde _ için my_list = sıralı ([int (raw_input ('Lütfen bir sayı yazın'))) yapmak yerine fazladan şeyler yazmak için bir neden yok. 2) sıralı_list adında bir listeniz var ama aslında sıralamıyorsunuz 3) Soruda yalnızca tek sayıları filtrelemeyle ilgili soran hiçbir şey yok 4) Bu, 5 yıl önce önceki yanıtların vermediği neyi sağlıyor sorulmayan soru ve daha az zarif bir şekilde)
Foon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.