ค้นหาจำนวนที่มากที่สุดในรายการตัวเลข


93

มีวิธีหรือฟังก์ชันง่ายๆในการกำหนดจำนวนที่มากที่สุดในรายการ python หรือไม่? ฉันสามารถเขียนโค้ดได้เนื่องจากฉันมีตัวเลขเพียงสามตัว แต่มันจะทำให้รหัสซ้ำซ้อนน้อยลงมากหากฉันสามารถบอกสิ่งที่ยิ่งใหญ่ที่สุดด้วยฟังก์ชันในตัวหรือบางอย่าง

คำตอบ:



18

คุณสามารถใช้ฟังก์ชัน inbuilt 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 ได้?
Chris Foster

3
ดังนั้นฉันจึงเขียนสิ่งนี้สำหรับคนที่เตรียมตัวสัมภาษณ์โดยคำถามคือการค้นหารายชื่อสูงสุดโดยไม่ต้องใช้ฟังก์ชันสูงสุดหากคุณรู้สึกดีในการสัมภาษณ์โปรด
โหวต

2
หากคุณต้องการดัชนีของค่าสูงสุดด้วยเช่นกัน? จากนั้นคุณจะรวม idx var ไว้ในบรรทัดสำหรับ
Kit Plummer

1
อย่าใช้maxเป็นชื่อของตัวแปรเพราะมันเป็นชื่อของบิวอิน
wjandrea


2

max เป็นฟังก์ชัน builtin ใน python ซึ่งใช้เพื่อรับค่าสูงสุดจากลำดับเช่น (list, tuple, set, etc .. )

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)
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) ไม่มีเหตุผลที่จะไม่ทำ my_list = sorted ([int (raw_input ('Please type a number')) สำหรับ _ ใน xrange (10)) เมื่อเทียบกับการพิมพ์สิ่งพิเศษ 2) คุณมีรายการที่เรียกว่า sorted_list แต่คุณไม่ได้เรียงลำดับจริงๆ 3) ไม่มีอะไรในคำถามที่ถามเกี่ยวกับการกรองเลขคี่ออกเท่านั้น 4) สิ่งนี้ให้อะไรที่คำตอบก่อนหน้านี้เมื่อ 5 ปีก่อนไม่ได้ (นอกเหนือจากการตอบ คำถามที่ไม่ได้ถามและในรูปแบบที่หรูหราน้อยกว่า)
Foon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.