Hàm min() trong Python

Hàm min() được tích hợp sẵn trong Python trả về phần tử nhỏ nhất trong một iterable hoặc nhỏ nhất trong những tham số truyền vào.

Nếu các giá trị là các chuỗi sẽ so sánh theo thứ tự chữ cái alphabet.

Vậy cú pháp của hàm min() như thế nào, nó có những tham số gì và cách sử dụng ra sao? Mời bạn đọc theo dõi.

Hàm min() trong Python

Cú pháp hàm min() trong Python

Hàm min() trong Python có 2 dạng:

min(iterable, *iterables[,key, default])

Hoặc:

min(item1, item2, *item[, key])

Các tham số của hàm min()

Hàm min() làm việc với hai dạng tham số tương ứng với hai cú pháp đã nêu ở trên:

1. min(iterable, *iterables[, key, default])

  • iterable: Bắt buộc. Các tuple, string, set, dictionary hoặc đối tượng iterator mà bạn cần tìm phần tử nhỏ nhất trong đó.
  • *iterables: Tùy chọn. Iterable nào nhỏ nhất sẽ được trả về.
  • key: Tùy chọn. Key function, nơi các iterable đi qua. Phép so sánh được thực hiện dựa trên kết quả trả về sau khi đi qua key function.
  • default: Tùy chọn. Giá trị mặc định khi iterable trống.

2. min(item1, item2, *item[, key])

  • item1, item2: Bắt buộc. Đối tượng để so sánh, có thể là number, string...
  • *item: Tùy chọn. Các đối tượng khác để so sánh.
    → Cần ít nhất hai đối tượng để thực hiện so sánh với hàm min().
  • key: Tùy chọn. Key function, nơi các item đi qua. Phép so sánh được thực hiện trên kết quả trả về sau khi đi qua key function.

Giá trị trả về từ min()

Hàm min() trả về kết quả khác nhau tương ứng với hai loại như trên:

1. min(iterable, *iterables[, key, default])

Trường hợpKeyDefaultGiá trị trả về
Iterable trốngCó hoặc KhôngKhông cóSinh ra ngoại lệ ValueError
Iterable trốngTrả về giá trị Default
Một iterable (không trống)KhôngCó hoặc KhôngTrả về số nhỏ nhất trong iterable
Một iterable (không trống)Có hoặc KhôngTruyền từng phần tử trong iterable cho hàm key, kết quả trả về là phần tử nhỏ nhất dựa trên giá trị trả về từ hàm key
Nhiều iterable (không trống)KhôngCó hoặc KhôngTrả về iterable nhỏ nhất
Nhiều iterable (không trống)Có hoặc KhôngTruyền từng iterable cho hàm key. Kết quả trả về là iterable nhỏ nhất dựa trên giá trị trả về từ hàm key

2. min(item1, item2, *item[, key])

Trường hợpKeyGiá trị trả về
2 itemKhôngTrả về tham số nhỏ hơn
2 itemTruyền từng tham số cho hàm key, kết quả trả về là phần tử nhỏ hơn dựa trên giá trị trả về từ hàm key
Nhiều itemKhôngTrả về tham số nhỏ nhất
Nhiều itemTruyền từng tham số cho hàm key, kết quả trả về là phần tử nhỏ nhất dựa trên giá trị trả về từ hàm key

Ví dụ 1: Tìm phần tử nhỏ nhất trong các số truyền vào

# su dung min(item1, item2, *item)
print('So nho nhat la:', min(1, 3, 2, 5, 4))

# su dung min(iterable)
num = [1, 3, 2, 8, 5, 10, 6]
print('So nho nhat la:', min(num))

Chạy chương trình, kết quả trả về là:

So nho nhat la: 1
So nho nhat la: 1

Ví dụ 2: Tìm số có tổng các chữ số nhỏ nhất bằng cách sử dụng key function

def sumDigit(num):
    sum = 0
    while(num):
        sum += num % 10
        num = int(num / 10)
    return sum

# su dung min(item1, item2, *item, key)
print('Ket qua nho nhat la:', min(100, 321, 267, 59, 40, key=sumDigit))

# su dung min(iterable, key)
num = [15, 300, 2700, 821, 52, 10, 6]
print('Ket qua nho nhat la:', min(num, key=sumDigit))

Output trả về là:

Ket qua nho nhat la: 100
Ket qua nho nhat la: 10

Ở ví dụ này, các tham số hoặc từng phần tử trong tham số iterable được truyền lần lượt vào sumDigit() để lấy kết quả là số có tổng các chữ số nhỏ nhất.

Ví dụ 3: Tìm list có độ dài nhỏ nhất bằng cách sử dụng key function

num = [15, 300, 2700, 821]
num1 = [12, 2]
num2 = [34, 567, 78]

# su dung min(iterable, *iterables, key)
print('List ngan nhat la:', min(num, num1, num2, key=len))

Kết quả trả về:

List ngan nhat la: [12, 2]

Trong chương trình trên, các iterable num, num1 và num2 được truyền vào key function là hàm len() tích hợp sẵn trong Python. Kết quả trả về là độ dài từng iterable và hàm min() sẽ đưa ra iterable có độ dài nhỏ nhất.

Xem thêm: Các hàm Python tích hợp sẵn

Chủ Nhật, 06/10/2024 12:02
54 👨 17.838
1 Bình luận
Sắp xếp theo
  • Ân Hoàng
    Ân Hoàng

    Cái VD ra kết quả sai r kìa. Phải là cả 2 đều trả về 'So nho nhat la: 1' chứ

    Thích Phản hồi 30/06/23
    ❖ Học Python