Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python หาแถวที่มี 1 มากที่สุดด้วย map


กำหนด 2D array ที่มีแค่ 0 และ 1 แถวถูกเรียงลำดับ หาแถวที่มี 1 มากที่สุดโดยใช้ map(sum, ...)

ตัวอย่าง

Input: [[0,1,1,1,1], [0,0,1,1,1], [1,1,1,1,1], [0,0,0,0,1]]
Output: Row 2 (index 2)

อัลกอริทึม

  1. หาผลรวมแต่ละแถวด้วย map(sum, matrix)
  2. ได้ list ของจำนวน 1 ต่อแถว
  3. หาดัชนีของค่าสูงสุด

โค้ดตัวอย่าง

def maximumofones(matrix):
    max1 = list(map(sum, matrix))
    print("MAXIMUM NUMBER OF 1's:", max1.index(max(max1)))

if __name__ == "__main__":
    n = [[0,1,1,1,1], [0,0,1,1,1], [1,1,1,1,1], [0,0,0,0,1]]
    maximumofones(n)

ผลลัพธ์

MAXIMUM NUMBER OF 1's: 2