Python 对数据文件中第二列的特定范围的值求和

Python 对数据文件中第二列的特定范围的值求和,python,Python,我有一个由两列组成的数据文件,第一列的值范围为-360到720,第二列的值由这些列的值组成 我正在尝试编写一个python代码,这样对于第一列的给定值,它应该取它的相应值,并将第二列的值加起来,从30到30 ....... ....... -40 2.2 ....... ....... 0 1.14 ........ ........ 60 5.12 ........ 如果给定的值为20,则应将第二列的值从-10添加到50,即第二列的范围应为(20-30,20+30)。我已尝试将每一行作

我有一个由两列组成的数据文件,第一列的值范围为-360到720,第二列的值由这些列的值组成

我正在尝试编写一个python代码,这样对于第一列的给定值,它应该取它的相应值,并将第二列的值加起来,从30到30

.......
.......
-40 2.2
.......
.......
0   1.14
........
........
60  5.12
........
如果给定的值为20,则应将第二列的值从-10添加到50,即第二列的范围应为(20-30,20+30)。我已尝试将每一行作为其他列表中的列表,但它不起作用

有没有更简单的方法


提前感谢

您的描述并不像许多评论员注意到的那样清晰

我会使用字典,第一列作为键,第二列作为值。然后,对于给定的键(
起始点
),我将使用给定范围(
diff)
中的键对字典中的值进行求和


假设:不存在的密钥计为0。取消注释
print()
,查看键和总和是否正确。如果只想对现有关键点求和,则必须从两个方向的起点开始求和,直到对两侧的
diff
值求和为止。正如wooble评论的那样,请向我们展示您的代码。

对于负数行,您预计会发生什么情况?它是否应该环绕到文件的末尾?您能显示出不工作的代码吗?所以col1中的20(总是int?),col2(可能是float?)有50。将第1列中的值替换为50-30到50+30范围内的值之和?我认为第2列中的值可以是一个浮点值,在这种情况下,范围将不起作用,不?谢谢你的回答,很抱歉没有正确地提出这个问题。实际上,这是我正在编写的代码的一部分。让我用另一种方式解释一下,举个简单的例子,由两列组成的数据文件,如果第一列中的值为-4、-3、-2、-1,0,1,2,3,4,如果第二列中的值为0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9。如果输入值为1(对应于第一列的值),则(取前面公布的值3而非20),输出值应为0.4+0.5+0.6+0.7+0.8(与第一列值相对应的第二列值之和从-1到3,即第一列的范围为(1-3,1+3))@Levon,正如你指出的,第二列的值是浮点值,但指定的范围是第一列的整数。@MichałNiklas非常感谢你的回答。你建议使用字典的方式是,我是否需要将字典的所有值存储在一个列表中。如果是这样,那么值[i]将与我需要的范围不对应。请您详细解释一下。请提前参阅我的示例代码。字典有
keys()
values()
。在字典“构造函数”中,我们使用
{key1:value1,key2:value2}
。然后
keys()
是一个带有
[key1,key2]的列表
和values是一个带有
[value1,value2]
的列表。我在本例中不使用这些列表。键通常是字符串,但也可以是其他类型,在这里我使用了整数。
VALUES = {-4: 0.1, -3: 0.2, -2: 0.3, -1: 0.4,
    0: 0.5, 1: 0.6, 2: 0.7, 3:  0.8, 4: 0.9}

def sum_part(start_point, diff):
    sum = 0.0
    for i in range(start_point - diff, start_point + diff + 1):
        try:
            sum += VALUES[i]
        except KeyError:
            pass
        #print('%d: %.2f' % (i, sum))
    return sum

def test_sum(start_point, diff):
    sum = sum_part(start_point, diff)
    print('sum(%d, %d): %.2f' % (start_point, diff, sum))

test_sum(1, 3)