[Python-ideas] get() method for list and tuples
Steven D'Aprano
steve at pearwood.info
Tue Feb 28 09:45:19 EST 2017
On Tue, Feb 28, 2017 at 12:54:26PM +0100, Michel Desmoulin wrote:
> dict.get() is a very useful method, but for lists and tuples, we need to
> rely on try/except instead.
No you don't. You can use slicing.
alist = [1, 2, 3]
print(alist[99:100]) # get the item at position 99
In my experience, dict.get is very useful, but list.get only *seems*
useful. I've written my own version:
def get(alist, pos, default=None):
try:
return alist[pos]
except IndexError:
return default
but then struggled to find a good use for it. It seems like it ought to
be useful, but in practice I found that it was only covering up bugs in
my code. If I was indexing a list outside of the range of existing
items, that's a bug, and using get() just made it hard to fix.
> Can we get list.get and tuple.get as well?
>
> Also, for list, a list.setdefault like the dict.setdefault would be logical.
What would it do?
For example, given:
alist = []
y = alist.setdefault(10, 'a')
what will alist equal?
--
Steve
More information about the Python-ideas
mailing list