Tìm số lớn nhất trong danh sách các số


91

Có cách hoặc hàm nào dễ dàng để xác định số lớn nhất trong danh sách python không? Tôi chỉ có thể viết mã cho nó, vì tôi chỉ có ba con số, tuy nhiên, nó sẽ làm cho mã bớt thừa hơn rất nhiều nếu tôi có thể cho biết điều tốt nhất với một hàm tích hợp sẵn hoặc một cái gì đó.

Câu trả lời:



18

Bạn có thể sử dụng hàm có sẵn max()với nhiều đối số:

print max(1, 2, 3)

hoặc một danh sách:

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

hoặc thực tế là bất cứ thứ gì có thể lặp lại.


3
Đó không phải là tốt để đặt tên cho biến một mặc định được xây dựng trong khóa trăn, mà ghi đè từ khóa thực tế, (bạn phải biết rằng) :-)
U10-Forward

15

Cách tiếp cận này không sử dụng max()hàm

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)

Ngoài ra, nếu bạn muốn tìm chỉ mục của giá thầu CPC

print(a.index(max_num))

Cách tiếp cận trực tiếp bằng cách sử dụng hàm max ()

Hàm max () trả về mục có giá trị cao nhất hoặc mục có giá trị cao nhất trong một giá trị có thể lặp lại

Ví dụ: khi bạn phải tìm max trên số nguyên / số

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

Ví dụ: khi bạn có chuỗi

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

Về cơ bản, nó trả về tên có giá trị cao nhất, được sắp xếp theo thứ tự bảng chữ cái.


2
Tại sao bạn không thể sử dụng hàm max?
Chris Foster

3
Vì vậy, tôi đã viết này cho những người chuẩn bị cho cuộc phỏng vấn, nơi mà các câu hỏi là để tìm tối đa của một danh sách mà không sử dụng function.If tối đa bạn cảm thấy nó tốt cho cuộc phỏng vấn xin phiếu bầu tán thành
Chetan_Vasudevan

2
Nếu bạn cần chỉ số của max có lẽ là tốt? Sau đó, bạn chỉ cần đưa idx var vào dòng for.
Kit Plummer

1
Không sử dụng maxlàm tên của biến vì đó là tên của nội trang.
wjandrea

11

Sử dụng max()

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

2

max là một hàm nội trang trong python, được sử dụng để nhận giá trị tối đa từ một chuỗi, tức là (danh sách, bộ, bộ, v.v.)

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

# prints 12 

2

Bạn thực sự có thể sắp xếp nó:

sorted(l,reverse=True)

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

Bạn lấy:

[3,2,1]

Nhưng vẫn còn nếu muốn có được tối đa do:

print(sort[0])

Bạn lấy:

3

nếu tối đa thứ hai:

print(sort[1])

và như thế...


1
Sắp xếp một danh sách là một hoạt động phức tạp hơn O (n log n) hơn là chỉ nhận được giá trị tối đa 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)

2
1) không có lý do gì để không làm my_list = sorted ([int (raw_input ('Vui lòng nhập một số')) cho _ trong xrange (10)) thay vì nhập thêm nội dung. 2) bạn có một danh sách được gọi là sorted_list nhưng bạn không thực sự sắp xếp nó 3) Không có gì trong câu hỏi hỏi về việc chỉ lọc ra các số lẻ 4) Điều này cung cấp điều gì mà các câu trả lời trước đó 5 năm trước không có (ngoài câu trả lời câu hỏi mà không được hỏi, và theo một cách ít thanh lịch)
Foon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.