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对其进行更改。