Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用deque生成defaultdict的问题_Python - Fatal编程技术网

Python 使用deque生成defaultdict的问题

Python 使用deque生成defaultdict的问题,python,Python,我想生成一个包含deque的defaultdict。例如: d = defaultdict(deque) 上面的工作很好,但我想通过传入一个参数使deque成为一个固定长度: d = defaultdict(deque(maxlen=10)) 如何将此类参数传递给defaultdict?使用部分应用的函数: from functools import partial defaultdict(partial(deque, maxlen=10)) 演示: 有关详细信息,请参阅文档。非常感谢。我

我想生成一个包含deque的defaultdict。例如:

d = defaultdict(deque)
上面的工作很好,但我想通过传入一个参数使deque成为一个固定长度:

d = defaultdict(deque(maxlen=10))

如何将此类参数传递给defaultdict?

使用部分应用的函数:

from functools import partial
defaultdict(partial(deque, maxlen=10))
演示:


有关详细信息,请参阅文档。

非常感谢。我知道defaultdict(lambda:deque(maxlen=10))也可以用。@turtle:是的,但它没有那么漂亮,IMHO
partial
被认为比
lambda
更像蟒蛇,
lambda
当然值得一提;但是,请参阅此问题和的答案,以获得有关
部分
优于
lambda
的好处的精彩解释。谢谢,这正是我所寻找的用例
partial
在许多情况下非常有用,因为您需要传递未调用的函数及其一些参数。
>>> 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)