如何初始化并附加到一个空的2D列表?

2024-10-01 15:30:51 发布

您现在位置:Python中文网/ 问答频道 /正文

只是一个简短的逻辑难题:我正在尝试实现4个主计数器。在每个主计数器中都存在子计数器。我通过创建一个2D列表来实现这一点

因此,当触发器被收集时,它会在每个主计数器中附加一个子计数器,并允许它开始计数。例如,在第4个主计数器中,子计数器不能超过4个,并且每个子计数器只能存在240个周期(因此窗口条件)。在第二个主计数器中,只能有2个子计数器,每个计数器只能计数25个时钟周期

到目前为止,我有:

def l1a(self):
    for x in xrange(len(self.counter)) :    
        self.counter[x].append([0])
        "Triggered"
    print self.counter

def counterReset(self):
    for j in xrange(len(self.counter)):
        print self.counter
        for k in xrange(len(self.counter[j])):
            print self.counter[j][k]
            if ((self.counter[j][k]) / self.window[j]) == 1:
                self.counter[j].pop(k) #delete counter
                print self.counter
    #print self.counter

def triggerRules(self):
    breakMe = False
    while breakMe == False:
        for i in xrange(len(self.counter)):
            if len(self.counter[i]) > i:
                breakMe = True
        break

    if breakMe == False:
        self.l1a()


def triggerClk(self):
    for i in xrange(len(self.counter)):
        for j in xrange(len(self.counter[i])):
            self.counter[i][j] += 1

def myClk(self):
    self.counterReset()

    self.clk += 1 
    self.triggerClk()

    nRand = random.randrange(0, self.max_word)


    if nRand < self.frequency :
        #print "Trying trigger"
        self.triggerRules()

但它只给了我一个输出:

[[[0]], [[0]], [[0]], [[0]]]
[[[0]], [[0]], [[0]], [[0]]]
[0]
Traceback (most recent call last):
  File "mp7trigsim.py", line 49, in <module>
    if __name__ == '__main__':main()
  File "mp7trigsim.py", line 27, in main
    trig = TriggerGen(i, max_word, clkCycles)
  File "TriggerGen.py", line 23, in __init__
    self.myClk()
  File "TriggerGen.py", line 60, in myClk
    self.counterReset()
  File "TriggerGen.py", line 37, in counterReset
    if ((self.counter[j][k]) / self.window[j]) == 1:
TypeError: unsupported operand type(s) for /: 'list' and 'int'

我如何得到它,所以它只是初始化4个主计数器,然后让我附加和弹出他们

我想我需要从以下几个方面开始:

[[0], [0], [0], [0]]

最后想象一下,如果所有的计数器都在滴答作响:

[[0,1], [1,12,1,13], [11,24,5,2], [22,43,24,56]]

我肯定我错过了什么微妙的东西


Tags: inpyselfforlenifdefline
1条回答
网友
1楼 · 发布于 2024-10-01 15:30:51

您可以看到,TypeError前面的语句打印了一个列表-这就是为什么您会得到错误list/int。并且您的诊断打印显示嵌套到三个级别而不是两个级别。在l1a中,尝试附加0而不是[0]

相关问题 更多 >

    热门问题