从列表池中选取一些第一个坐标列表

时间:2017-12-24 23:13:15

标签: python list coordinate

我有一串所有节点的坐标。基本上,我将字符串拆分为一对坐标(x,y)(这是代码中的部分结果:values = line.split())。如果我打印“值”,我将得到结果如下:

RMS_x

我有7个节点及其坐标。但是我想使用前5个节点继续追加到坐标列表。我怎么能这样做?

我的代码是:

['1', '3600', '2300']

['2', '3100', '3300']

['3', '4700', '5750']

['4', '5400', '5750']

['5', '5608', '7103']

['6', '4493', '7102']

['7', '3600', '6950'] 

2 个答案:

答案 0 :(得分:0)

按如下方式更改您的代码:

def read_coordinates(self, inputfile):
    coord = []
    iFile = open(inputfile, "r")
    for i in range(6):  # skip first 6 lines
        iFile.readline()
    line = iFile.readline().strip()
    i = 0
    while i < 5 
        values = line.split()
        coord.append([float(values[1]), float(values[2])])
        line = iFile.readline().strip()
        i += 1
    iFile.close()
    return coord

现在你的while循环只运行前5行,这将为前5个节点提供结果

答案 1 :(得分:0)

也许这会解决问题,使用上下文管理器来保持功能更加整洁。

def read_coordinates(self, inputfile):

    coord = []
    with open(inputfile, "r") as iFile:
        for i in xrange(6):  # Skip first 6 lines
            next(iFile)

        for i in xrange(5):  # Read the next 5 lines
            line = iFile.readline().strip()
            values = line.split()
            coord.append([float(values[1]), float(values[2])])
    return coord