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

Pick up some first coordinate lists from list pool

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

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

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

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

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

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

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

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

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

我的代码是:

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()
    while line != "EOF":
        **values = line.split()**
        coord.append([float(values[1]), float(values[2])])
        line = iFile.readline().strip()
    iFile.close()
    return coord

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

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 个节点的结果

也许这会奏效,还有使用上下文管理器保持函数整洁的额外好处。

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