Temukan angka terbesar dalam daftar angka

93

Apakah ada cara atau fungsi yang mudah untuk menentukan angka terbesar dalam daftar python? Saya hanya bisa mengkodekannya, karena saya hanya memiliki tiga angka, namun itu akan membuat kode jauh lebih tidak mubazir jika saya bisa membedakan yang terbaik dengan fungsi bawaan atau sesuatu.

Chris Foster
sumber

Jawaban:

18

Anda dapat menggunakan fungsi inbuilt max()dengan beberapa argumen:

print max(1, 2, 3)

atau daftar:

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

atau pada kenyataannya apapun yang dapat diubah.

cletus
sumber
3
Tidak baik untuk menamai variabel sebagai kata kunci python bawaan, yang menimpa kata kunci sebenarnya, (Anda harus tahu itu) :-)
U10-Forward
16

Pendekatan ini tanpa menggunakan max()fungsi

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)

Juga jika Anda ingin mencari indeks hasil maks,

print(a.index(max_num))

Pendekatan langsung dengan menggunakan fungsi max ()

max () fungsi mengembalikan item dengan nilai tertinggi, atau item dengan nilai tertinggi dalam sebuah iterable

Contoh: ketika Anda harus mencari nilai maks pada bilangan bulat / angka

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

Contoh: ketika Anda memiliki string

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

Ini pada dasarnya mengembalikan nama dengan nilai tertinggi, diurutkan menurut abjad.

Chetan_Vasudevan
sumber
2
Mengapa Anda tidak pernah bisa menggunakan fungsi max?
Chris Foster
3
Jadi saya menulis ini untuk orang-orang yang mempersiapkan wawancara, di mana pertanyaannya adalah menemukan daftar maksimum tanpa menggunakan fungsi max. Jika Anda merasa bagus untuk wawancara, silakan upvote
Chetan_Vasudevan
2
Jika Anda membutuhkan index max juga mungkin? Anda kemudian hanya akan memasukkan idx var di baris for.
Kit Plummer
1
Jangan gunakan maxsebagai nama variabel karena itu adalah nama bawaan.
wjandrea
11

Menggunakan max()

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

max adalah fungsi builtin dalam python, yang digunakan untuk mendapatkan nilai maksimal dari suatu urutan, yaitu (list, tuple, set, dll ..)

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

# prints 12 
Sanjay Idpuganti
sumber
2

Anda sebenarnya bisa mengurutkannya:

sorted(l,reverse=True)

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

Anda mendapatkan:

[3,2,1]

Tetapi tetap jika ingin mendapatkan hasil maksimal lakukan:

print(sort[0])

Anda mendapatkan:

3

jika maks kedua:

print(sort[1])

dan seterusnya...

U10-Maju
sumber
1
Menyortir daftar adalah operasi O yang lebih kompleks (n log n) daripada hanya mendapatkan nilai maksimum O (n)
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)
Shalbert
sumber
3
1) tidak ada alasan untuk tidak melakukan my_list = sort ([int (raw_input ('Please type a number')) for _ in xrange (10)) dibandingkan mengetik hal tambahan. 2) Anda memiliki daftar yang disebut sort_list tetapi Anda tidak benar-benar mengurutkannya 3) Tidak ada dalam pertanyaan yang menanyakan tentang menyaring angka ganjil hanya 4) Apa ini memberikan bahwa jawaban sebelumnya 5 tahun yang lalu tidak (selain menjawab a pertanyaan yang tidak ditanyakan, dan dengan cara yang kurang elegan)
Foon