Feature or enhancement
Proposal:
It would be useful to be able to search a list in a functional-style manner. :
# list with structured data
data = [(i, chr(i)) for i in range(100)]
# find index of "a" in classic manner:
for idx, item in enumerate(data):
if item[1] == "a":
break
# functional-style search:
idx = data.index("a", key=lambda i: i[1])
This idea came up in the discussion to pr #112498, in the context of searching for objects in a heap.
Task = namedtuple('Task', ('priority', 'name', 'timestamp', 'callback'))
data: List[Task] = get_data()
# remove "bob"
del data[data.index("bob", key=attrgetter("name"))]
An implementation is provided in pr #113772
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
I mentioned this in pr #112498, as a way to decouple searching and heap removal.
Instead of having
heapq.heapremove(heap, value, key=keymethod)
the desired functionality could be easily provided if list itself provided the search functionality:
heapq.heapremove(heap, heap.index(value, key=keymethod))
Linked PRs
Feature or enhancement
Proposal:
It would be useful to be able to search a list in a functional-style manner. :
This idea came up in the discussion to pr #112498, in the context of searching for objects in a heap.
An implementation is provided in pr #113772
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
I mentioned this in pr #112498, as a way to decouple searching and heap removal.
Instead of having
the desired functionality could be easily provided if
listitself provided the search functionality:Linked PRs