【发布时间】:2021-07-04 18:18:06
【问题描述】:
如果索引不存在,有没有办法用默认值从列表中弹出一个元素?我知道对于字典,python 允许 pop 函数返回一个默认值,如下所示:
d = {"stack": "overflow"}
d.pop("stack", 10) # returns "overflow"
d.pop("badkey", 10) # returns 10
列表是否有等价物?似乎python的默认列表弹出方法does not support default values那么实现下面代码sn-p所示功能的最pythonic方式是什么?
def pop_default(input_list, index, default_value):
try:
temp = input_list[index].copy()
del input_list[index]
except IndexError:
return default_value
【问题讨论】:
-
请注意,虽然@DeepSpace 对您的问题给出了正确答案,但您甚至尝试这样做的事实可能表明您的程序设计存在问题。从列表中重复弹出,除非仅在非常接近列表末尾的位置进行,否则非常昂贵。您可能希望找到一种方法来按顺序处理列表,而不是从列表中重复弹出,或者使用不同的数据结构.
-
我正在尝试制作一个快速脚本,该脚本使用 sys.argv 获取命令行参数,同时还存储默认参数。虽然我知道 argparser 可以解决这个问题,但我正在寻找一种快速的解决方案来处理这些参数而不会使代码过于复杂。
-
执行此操作的有效方法是遍历列表,并创建两个新列表 - 一个是选项,另一个是独立参数。再说一次,真正有效的做法是使用
argparse或optparse。