New submission from João Marcos <jmpb190...@gmail.com>:

"""
PROBLEM:

When trying to search the position of an element inside a list, we should use 
the `in` operator to first check if the element exists, and then use the 
`index` method to obtain the index.

`in` (__contains__) runs a linear search to return the boolean.
`index`        also runs a linear search to return the index.

This makes the code slower, because we need to search for the same item twice.


FEATURE PROPOSAL:

Similar to str.find(), list.find() should be implemented, where -1 is returned 
when the element isn't present
"""


# Since there's no list.find(), this is my workaround to achieve making only 
one linear search per query
def find(container: list, index: int) -> int:
    """ Str.find() behavior but for lists """
    try:
        return container.index(index)
    except ValueError:
        return -1

# Example driver code:
index = find(list, possible_element)
if index_of_element == -1:
    pass # Not found
else:
    pass # Found

----------
messages: 368254
nosy: João Marcos
priority: normal
severity: normal
status: open
title: Adding the method find() to list
type: enhancement
versions: Python 3.9

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue40531>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to