每次打印一个Python deque项,并在其前面打印所有项



我创建了deque h = collections.deque(),并将数字1-10附加到它上面,并将其包含在用户定义的函数Numbers_deque()中的函数print(h)中。具体来说,我做到了:

import collections

def Numbers_deque():
    h = collections.deque()
    j = (1,2,3,4,5,6,7,8,9,10)
    h.append(j)
    print(h)
Numbers_deque()

我想知道的是,我如何打印出一次增加一个的deque项目,每次它还打印出之前的所有项目?例如,每次调用Numbers_deque时,第一次我希望它打印deque([1]),第二次它应该打印deque([1,2]),第三次它应该打印机deque([1,2,3]),依此类推。我该怎么做?

您可以将deque作为默认参数启动。然后它只执行一次,并在每次调用函数时重复使用。

import collections

def Numbers_deque(h = collections.deque()):
    if len(h) >= 10:
        h.clear()
    h.append(len(h)+1)
    print(h)
Numbers_deque()

但是,如果要返回deque并在函数外使用它,请小心。然后您应该制作一个副本