Computer >> Máy Tính >  >> Lập trình >> Python

Python - Lấy chỉ mục của phần tử đầu tiên lớn hơn K

Giá trị của các mục trong danh sách python không nhất thiết phải theo bất kỳ thứ tự được sắp xếp nào. Hơn nữa, có thể có tình huống khi chúng ta chỉ quan tâm đến một số giá trị lớn hơn một giá trị cụ thể. Trong bài viết này, chúng ta sẽ xem cách chúng ta có thể nhận được

Sử dụng phép liệt kê

Sử dụng phép liệt kê, chúng ta nhận được cả chỉ mục và giá trị của các phần tử trong danh sách. Sau đó, chúng ta áp dụng điều kiện lớn hơn để chỉ nhận phần tử đầu tiên thỏa mãn điều kiện. Hàm tiếp theo đi qua từng phần tử danh sách.

Ví dụ

List = [21,10,24,40.5,11]
print("Given list: " + str(List))
#Using next() + enumerate()
result = next(k for k, value in enumerate(List)
if value > 25)print("Index is: ",result)

Chạy đoạn mã trên cho chúng ta kết quả sau

Đầu ra

Given list: [21, 10, 24, 40.5, 11]
Index is: 3

Sử dụng Bộ lọc và Chức năng Lambda

Trong ví dụ tiếp theo, chúng ta lấy một hàm lambda để so sánh giá trị đã cho với giá trị tại mỗi chỉ mục và sau đó lọc ra những giá trị thỏa mãn điều kiện bắt buộc. Từ danh sách các phần tử thỏa mãn điều kiện bắt buộc, chúng tôi chọn phần tử đầu tiên ở chỉ mục 0 cho câu trả lời của chúng tôi.

Ví dụ

List = [21,10,24,40.5,11]
print("Given list: " + str(List))
#Using filter() + lambda
result = list(filter(lambda k: k > 25, List))[0]
print("Index is: ",List.index(result))

Chạy đoạn mã trên cho chúng ta kết quả sau

Đầu ra

Given list: [21, 10, 24, 40.5, 11]
Index is: 3

Sử dụng bản đồ và lambda

Trong ví dụ tiếp theo, chúng tôi thực hiện một cách tiếp cận tương tự nhưng sử dụng bản đồ thay vì bộ lọc. Hàm bản đồ được sử dụng để lặp qua từng phần tử. Bất cứ khi nào điều kiện trở thành đúng, chỉ mục đó sẽ được ghi lại.

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))

Chạy đoạn mã trên cho chúng ta kết quả sau

Đầu ra

Given list: [21, 10, 24, 40.5, 11]
Index is: 3