Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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 - Fatal编程技术网

Python 如何获得二维计数器的长度

Python 如何获得二维计数器的长度,python,Python,构建计数器: class Counters: def __init__(self,cats) self.form = collections.defaultdict(collections.Counter) 我得到第一个维度的长度: len(counters.form.items()) 如何获得第二维度的长度?如果您想要python中的二维数组,您应该这样实现: x = 2 y = 3 nestedArray = [[0]*y for a in xrange(x)]

构建计数器:

class Counters:
    def __init__(self,cats)
        self.form = collections.defaultdict(collections.Counter)
我得到第一个维度的长度:

len(counters.form.items())

如何获得第二维度的长度?

如果您想要python中的二维数组,您应该这样实现:

x = 2
y = 3
nestedArray = [[0]*y for a in xrange(x)]
那么数组长度将是x*y

甚至更好的是,使用类

class NestedArray(object):
    def __init__(self, x, y, defaultValue=0):
        self.x = x
        self.y = y
        self.array = [[defaultValue]*y for a in xrange(x)]

    def __len__(self):
        return self.x * self.y

    def __getitem__(self, key):
            return self.array[key]

    def __setitem__(self, key, value):
            self.array[key] = value

参差不齐的数组本身没有第二维度,只有嵌套的结构。在这里黑暗中拍摄len(counters.form.keys())您是指最大长度吗?或者,沿该维度的不同值的数量?@JanneKarila沿第二维度的不同值的数量?实际上,沿第二维度的不同值的数量是相同的。@dc5553似乎不起作用……但这仍然不是2D数组。@IgnacioVazquez Abrams为什么不呢?您不需要
[]*n
这实际上是
[]
因为每个嵌套结构的大小独立于其他结构。@IgnacioVazquez Abrams您可以随时使用arrayObj[x]=[0]*n对其进行更改。