gpt4 book ai didi

python - 默认列表设计

转载 作者:行者123 更新时间:2023-11-28 21:27:39 24 4
gpt4 key购买 nike

<分区>

我正在尝试创建 defaultlist,类似于 defaultdict。这个想法是,有时我想要一个预先填充(实际上!)的列表,其中包含所有未明确设置值的索引中的某些元素。 defaultdict 的不同之处在于,我实际上并没有将默认值添加到列表中,除非由于用户分配而必须扩展列表。

1)这个设计有什么问题吗?

2) 这是我将要使用的实现。有什么问题吗?

class defaultlist(list):
def __init__(self, default_factory, arg = ()):
# note: cannot use arg = None since list(None) is not the same as list()
# alternatively can use:
# def __init__(self, default_factory, *args, **kwargs)
self.default_factory = default_factory
super().__init__(arg)

def __getitem__(self, key):
try:
return super().__getitem__(key)
except IndexError:
return self.default_factory()

def __setitem__(self, key, value):
for i in range(len(self), key):
self.append(self.default_factory())
self.append(value)

编辑:最初,我有两个错误。抱歉,感谢您指出答案中的两个错误。

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