Python Enhancement Proposal for List methods

Peter Otten __peter__ at web.de
Mon Oct 22 05:44:19 EDT 2018


Siva Sukumar Reddy wrote:

> I am really new to Python contribution community want to propose below
> methods for List object. Forgive me if this is not the format to send an
> email.
> 
> 1. *list.replace( item_to_be_replaced, new_item )*: which replaces all the
> occurrences of an element in the list instead of writing a new list
> comprehension in place.
> 2. *list.replace( item_to_be_replaced, new_item, number_of_occurrences )*:
> which replaces the occurrences of an element in the list till specific
> number of occurrences of that element. The number_of_occurrences can
> defaulted to 0 which will replace all the occurrences in place.
> 3. *list.removeall( item_to_be_removed )*: which removes all the
> occurrences of an element in a list in place.
> 
> What do you think about these features?
> Are they PEP-able? Did anyone tried to implement these features before?
> Please let me know.

You can easily implement those as functions.

def list_replace(items, old, new, count=None):
    indices = (i for i, v in enumerate(items) if v == old)
    if count is not None:
        indices = itertools.islice(indices, count)
    for index in indices:
        items[index] = new

def list_removeall(items, value):
    for index in reversed(range(len(items))):
        if items[index] == value:
            del items[index]

To promote them to methods of a built-in class you need to provide use-cases
that are both frequent and compelling, I think.

So what are your use-cases?




More information about the Python-list mailing list