gpt4 book ai didi

python - 从具有默认值的 Python 列表中弹出

转载 作者:行者123 更新时间:2023-12-02 02:17:05 25 4
gpt4 key购买 nike

如果索引不存在,是否有办法从具有默认值的列表中弹出一个元素?我知道对于字典,python 允许 pop 函数返回默认值,如下所示:

d = {"stack": "overflow"}
d.pop("stack", 10) # returns "overflow"
d.pop("badkey", 10) # returns 10

是否有列表的等价物?似乎是 python 的默认列表弹出方法 does not support default values那么,实现下面代码片段中所示功能的最符合 Python 风格的方法是什么?

def pop_default(input_list, index, default_value):
try:
temp = input_list[index].copy()
del input_list[index]
except IndexError:
return default_value

最佳答案

copydel 有什么用?只需尝试pop,并捕获IndexError:

def pop_default(input_list, index, default_value):
try:
return input_list.pop(index)
except IndexError:
return default_value

如果要在你的代码库中多次这样做,你可以使用一个子类(但是它可能会更困惑,所以最好只使用上面的函数)

from collections import UserList

class MyList(UserList):
def pop(self, index, default_value=None):
try:
return super().pop(index)
except IndexError:
return default_value


my_list = MyList(['a'])
print(my_list.pop(0))
print(my_list.pop(0, 'default'))

输出

'a'
'default'

关于python - 从具有默认值的 Python 列表中弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67011427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com