Skip to content

Add operator.getitemtuple & operator.itemtuplegetter #128000

@dg-pb

Description

@dg-pb

Proposal:

from itertools import repeat
from operator import getitemtuple, itemtuplegetter

obj = ['a', 'b']
indices = [0, 1, 2, 3]
defaults = repeat(None)

itg = itemtuplegetter(indices, defaults=defaults)
print(itg(obj))
# ('a', 'b', None, None)

print(getitemtuple(obj, indices, defaults))
# ('a', 'b', None, None)

Other form was considered: itemitergetter()() -> Iterator.
But its performance has turned out to be non-competitive (see discourse discusssion).
Thus, it is best to follow tuple return same as existing itemtgetter.

Has this already been discussed elsewhere?

No response given

Links to previous discussion of this feature:

https://discuss.python.org/t/itemgetter-split-into-2-objects/69020/33

Metadata

Metadata

Assignees

No one assigned

    Labels

    docsDocumentation in the Doc dirtype-featureA feature request or enhancement

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions