Giá trị trong danh sách Python không nhất thiết đã sắp xếp. Đôi khi chỉ quan tâm phần tử lớn hơn ngưỡng K. Bài này trình bày cách lấy chỉ mục phần tử đầu tiên thỏa mãn.
Dùng Enumerate
enumerate() cho cả chỉ mục và giá trị. Dùng next() lấy phần tử đầu tiên thỏa điều kiện value > K.
Ví dụ
List = [21, 10, 24, 40.5, 11]
print("Given list: " + str(List))
result = next(k for k, value in enumerate(List) if value > 25)
print("Index is: ", result)
Kết quả:
Given list: [21, 10, 24, 40.5, 11] Index is: 3
Dùng Filter và Lambda
Lambda so sánh giá trị với ngưỡng, filter() lọc phần tử thỏa mãn. Lấy phần tử đầu tiên (index 0) từ kết quả lọc, rồi tìm chỉ mục trong danh sách gốc.
Ví dụ
List = [21, 10, 24, 40.5, 11]
print("Given list: " + str(List))
result = list(filter(lambda k: k > 25, List))[0]
print("Index is: ", List.index(result))
Kết quả:
Given list: [21, 10, 24, 40.5, 11] Index is: 3
Dùng Map và Lambda
map() lặp qua từng phần tử, trả về True/False. Dùng .index(True) tìm vị trí đầu tiên thỏa mãn.
Ví dụ
List = [21, 10, 24, 40.5, 11]
print("Given list: " + str(List))
result = list(map(lambda k: k > 25, List)).index(True)
print("Index is: ", result)
Kết quả:
Given list: [21, 10, 24, 40.5, 11] Index is: 3