是否有“获取或默认”方式访问列表? [复制]

2023-12-07

我喜欢函数 get,它可以提供默认值,但这仅适用于字典。

s=dict{}
s.get("Ann", 0)

我为列表写了类似的东西。 Python3.4中已经存在这个函数了吗?

def get(s, ind):
    return len(s)>ind and s[ind] or 0

不,不存在这样的内置方法lists。查明列表索引是否有效很简单,因此不需要任何函数。您可以将代码放入您的函数中(或者更具可读性的s[ind] if ind < len(s) else 0)直接插入到需要的两三个地方,这是完全可以理解的。

您还可以利用对列表进行切片总是成功的事实,获取一个单项切片,为其创建一个迭代器,然后尝试从迭代器获取下一个值。然后你可以指定默认值next() call.

next(iter(s[ind:ind+1]), 0)

但这会比if建造。

当然,你的代码和我的代码都假设ind总是积极的...

如果你确实想写一个函数,你可以将它作为一个方法list子类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有“获取或默认”方式访问列表? [复制] 的相关文章

随机推荐