Trong bài này ta cần tìm số khác 0 đầu tiên xuất hiện trong một danh sách số cho trước.
Với enumerate và next
Ta dùng enumerate để lấy danh sách tất cả phần tử và áp dụng hàm next để lấy phần tử khác 0 đầu tiên.
Ví dụ
listA = [0,0,13,4,17] # Danh sách cho trước print("Given list:\n ",listA) # sử dụng enumerate res = next((i for i, j in enumerate(listA) if j), None) # in kết quả print("The first non zero number is at: \n",res)Đầu ra
Chạy mã trên cho kết quả sau:
Given list: [0, 0, 13, 4, 17] The first non zero number is at: 2
Với next và filter
Điều kiện next và filter được áp dụng cho các phần tử danh sách cùng với biểu thức lambda với điều kiện khác 0.
Ví dụ
listA = [0,0,13,4,17] # Danh sách cho trước print("Given list:\n ",listA) # sử dụng next, filter và lambda res = listA.index(next(filter(lambda i: i != 0, listA))) # in kết quả print("The first non zero number is at: \n",res)Đầu ra
Chạy mã trên cho kết quả sau:
Given list: [0, 0, 13, 4, 17] The first non zero number is at: 2