使用双端队列生成defaultdict的问题

tur*_*tle 4 python

我想生成一个包含双端队列的defaultdict.例如:

d = defaultdict(deque)
Run Code Online (Sandbox Code Playgroud)

上面的工作很好,但是我想通过传递一个参数来使deque成为一个固定的长度:

d = defaultdict(deque(maxlen=10))
Run Code Online (Sandbox Code Playgroud)

我如何将这样的参数传递给defaultdict?

Fre*_*Foo 13

使用部分应用的功能:

from functools import partial
defaultdict(partial(deque, maxlen=10))
Run Code Online (Sandbox Code Playgroud)

演示:

>>> deque10 = partial(deque, maxlen=10)
>>> deque10()
deque([], maxlen=10)
>>> deque10(range(20))
deque([10, 11, 12, 13, 14, 15, 16, 17, 18, 19], maxlen=10)
Run Code Online (Sandbox Code Playgroud)

有关functools.partial详细信息,请参阅文档

  • 万分感谢。我看到 `defaultdict(lambda: deque(maxlen=10))` 也可以工作。 (3认同)