Tôi cần một hàm, có khả năng lặp qua bộ sưu tập, gọi hàm được cung cấp cùng với phần tử của tập hợp dưới dạng tham số và trả về tham số hoặc chỉ số khi nhận được "True" từ hàm được cung cấp.Python - chức năng "tìm"?
Nó được somethong như thế này:
def find(f, seq, index_only=True, item_only=False):
"""Return first item in sequence where f(item) == True."""
index = 0
for item in seq:
if f(item):
if index_only:
return index
if item_only:
return item
return index, item
index+= 1
raise KeyError
Vì vậy, tôi tự hỏi liệu có bất cứ điều gì như thế trong standart python công cụ?
Đoạn mã của OP là cách trực tiếp hơn (nếu chỉ dài hơn một chút) để thể hiện yêu cầu; nó cũng có thể được quy định theo cách, tùy thuộc vào tình hình. Tuy nhiên, từ các câu trả lời, có một cái nhìn rất hữu ích: 'liên quan đến vòng lặp, khi nghi ngờ, hãy tham khảo/xem xét itertools'. – mjv