Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm phần tử nhỏ nhất lớn hơn K trong Python


Trong phân tích dữ liệu Python, thường cần lọc phần tử từ danh sách thỏa mãn điều kiện nhất định. Bài viết này trình bày cách tìm phần tử lớn hơn K nhưng nhỏ nhất trong số các phần tử đó.

Cách 1: Sử dụng min() với generator

Duyệt qua danh sách, lấy các phần tử > K, áp dụng min().

listA = [1, 5, 6, 7, 11, 14]
k = 8
res = min(i for i in listA if i > k)
print("Minimum element greater than k:", res)  # 11

Cách 2: Sử dụng filter() và lambda

Lọc các phần tử > K bằng filter(lambda i: i > k, listA), sau đó áp dụng min().

listA = [1, 5, 6, 7, 11, 14]
k = 8
res = min(filter(lambda i: i > k, listA))
print("Minimum element greater than k:", res)  # 11

Cách 3: Sử dụng bisect_right (yêu cầu danh sách đã sắp xếp)

Sắp xếp danh sách, dùng bisect_right từ module bisect để tìm chỉ mục chèn, phần tử tại chỉ mục đó là kết quả.

from bisect import bisect_right
listA = [1, 5, 6, 7, 11, 14]
k = 8
listA.sort()
res = listA[bisect_right(listA, k)]
print("Minimum element greater than k:", res)  # 11