getattr用于Python中的列表索引?

13s*_*inj 0 python getattr

我知道我可以尝试/除了或if/else并根据错误或else子句设置默认值,但我只是想知道是否有一个可以像getattrcan 一样做的单行.

wim*_*wim 6

好处:只是def辅助功能

def my_getitem(container, i, default=None):
    try:
        return container[i]
    except IndexError:
        return default
Run Code Online (Sandbox Code Playgroud)

:你可以单行条件版本

item = container[i] if i < len(container) else default
Run Code Online (Sandbox Code Playgroud)

丑陋:这些都是黑客,不要使用.

item = (container[i:] + [default])[0]

item, = container[i:i+1] or [default]

item = container[i] if container[i:] else default

item = dict(enumerate(container)).get(i, default)

item = next(iter(container[i:i+1]), default)
Run Code Online (Sandbox Code Playgroud)