从计数功能得到错误的结果

时间:2017-04-02 02:45:47

标签: python json dictionary cluster-computing geocoding

这是我的代码,我知道它不够干净,但它不能像我想的那样运行,任何人都可以帮助我吗?

我修好了,谢谢你的帮助

此代码的一般概念是将每个坐标与范围进行比较,并计算每个网格的点数

结果是: {'other':862,'B4':2,'D5':1,'A1':0,'D4':2,'A3':2,'A2':2,'A4':0,' B2':36,'B3':8,'C3':15,'C2':50,'C1':1,'C4':7,'D3':4,'C5':1,'B1' :7}

我不知道为什么'其他'得到这么多

{{1}}

2 个答案:

答案 0 :(得分:1)

替换表格的行

counts['A1']+=counts['A1']

带有

形式的行
counts['A1']+=1

实际上,您永远不会增加counts,因为您每次都会向其添加当前值(0)。

答案 1 :(得分:0)

也许您正在寻找:

len(counts.keys())

如果没有,围绕您的问题的更多上下文将有助于找到解决方案。此外,看起来您可以通过将这些最小/最大数据点存储在字典列表中并将这些比较语句压缩到单个循环中来节省相当多的代码重复。有点像:

data = [{'x-min': 0, 'x-max': 1, 'y-min': 0, 'y-max': 1, 'count': 0}, ...]

def within_threshold(x1, y1, point):
    within_x = x >= point['x-min'] and x <= point['x-max']
    within_y = y >= point['y-min'] and y <= point['y-max']
    return within_x and within_y

def compare(x, y):
    for point in data:
        if within_threshold(x, y, point):
            point['count'] += 1