Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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中实现移位寄存器的最简单方法_Python_Dictionary - Fatal编程技术网

在python中实现移位寄存器的最简单方法

在python中实现移位寄存器的最简单方法,python,dictionary,Python,Dictionary,我想实现一个类似移位寄存器的数据结构,基本上移位寄存器应该有一个固定的长度(L),并且应该有一个功能来管理这个寄存器的输入(新的输入),新的输入将在移位寄存器的第一个单元中,前一个元素将向前移动一个单元。当寄存器已满并且添加了一个新元素时,它将移动所有元素,这样最后一个单元格中的元素将被抛出(我们不关心) 我的想法是通过使用一个包含这些元素的字典来实现这些事情,这样键就是这个字典的顺序 有人能帮我吗?Python已经包含以下数据结构: 听起来你想要一份工作。推到前面,放下末尾。如果这个结构中的每

我想实现一个类似移位寄存器的数据结构,基本上移位寄存器应该有一个固定的长度(L),并且应该有一个功能来管理这个寄存器的输入(新的输入),新的输入将在移位寄存器的第一个单元中,前一个元素将向前移动一个单元。当寄存器已满并且添加了一个新元素时,它将移动所有元素,这样最后一个单元格中的元素将被抛出(我们不关心)

我的想法是通过使用一个包含这些元素的字典来实现这些事情,这样键就是这个字典的顺序


有人能帮我吗?

Python已经包含以下数据结构:


听起来你想要一份工作。推到前面,放下末尾。如果这个结构中的每个元素都有2个变量,我需要做什么?c=collections.deque([[]*2],L)c.extend(['a','b'])这有效吗?如果队列中的每个元素都更复杂,那么把它打包成一个或
dict
@phihag:我会使用
.append(elem)
这将保留
elem
引用的任何任意类型。@AliJawadFahs注意到
deque([[]*2],L)
没有意义<代码>[]*2仍然是
[]
。如果您想使用长度为
L
的“空”列表初始化队列,您可以尝试例如
[None]*L
>>导入集合>>>a={}>>a[1]=2>>>c=collections.deque([],2)>>c.extend(a.items())>>a[1]=3>>c.extend(a.items())>>a[1]=4>>c.extend(a.items())>>c.extend(a.items())>>print c作为魅力,谢谢兄弟
>>> import collections
>>> c = collections.deque([], 2)
>>> c.extend('a')
>>> c.extend('b')
>>> c.extend('c')
>>> c
deque(['b', 'c'], maxlen=2)