Python 使用默认值列出pop

Python 使用默认值列出pop,python,Python,在python中,有没有一种方法可以使用内置函数执行以下操作,或者它需要一个用户函数 l = [1,] l.pop(0) # 1 l.pop(0) # IndexError: pop from empty list <-- I want it to return None list.pop()不接受默认值在python中有没有一种方法可以使用内置的-No-来执行以下操作。你可以把它写为(L或[NON])。POP(0)但是,这相当不错。你也可以使用你自己的列表>代码>类,但是它可能不值得。

在python中,有没有一种方法可以使用内置函数执行以下操作,或者它需要一个用户函数

l = [1,]
l.pop(0)
# 1
l.pop(0)
# IndexError: pop from empty list <-- I want it to return None

list.pop()
不接受默认值在python中有没有一种方法可以使用内置的-No-来执行以下操作。你可以把它写为<代码>(L或[NON])。POP(0)但是,这相当不错。你也可以使用你自己的<代码>列表>代码>类,但是它可能不值得。如果你从索引0(列表左边)反复弹出,那么你应该考虑使用<代码> deq。列表中的持久性有机污染物仅从右端算起便宜;您可以使用
L
。2) . 改为使用
def
。我没有否决投票,但OP希望它返回
None
,那么当他弹出时,他的代码中应该有一个变量赋值!为了与
list.pop
保持一致,我可以建议
position=-1的默认值吗。(我经常看到人们从一开始就不必要地蹦蹦跳跳),而从结尾蹦蹦跳跳则更快。可能会被否决,因为这是一个只有代码的答案,没有任何解释?它确实在评论中出现了,因为它的长度和内容被标记为低质量。这比OP在问题中已经有的简单条件慢了大约400%,而在空列表的情况下慢了大约900%。与仅使用简单的if语句相比,它的代码更多,可读性更低。你为什么要这样做?
popsafe = lambda l: l.pop(0) if l else None
import contextlib

def pop_with_default(l, position=1, default=None):
    with contextlib.suppress(IndexError):
        return l.pop(position)
    return default