在python中将输出值发送到新列表

在python中将输出值发送到新列表,python,Python,我正在做一个关于自动驾驶汽车的项目,它可以行驶到推荐的gps坐标。如何创建新列表并将程序的输出值输入该列表?我的程序如下所示,我得到了带有字符串$GPRMC的行号。我想将行号存储到一个列表中,并进一步操作这些行。 我只得到包含$GPRMC的行数的输出,而没有这些行数的列表。这将把行数、行字符串的元组放入列表请求行中: @Claudiu的回答是正确的,只是想稍微了解一下python的真实情况,请执行以下操作: [(idx,line) for idx,line in enumerate(open(

我正在做一个关于自动驾驶汽车的项目,它可以行驶到推荐的gps坐标。如何创建新列表并将程序的输出值输入该列表?我的程序如下所示,我得到了带有字符串$GPRMC的行号。我想将行号存储到一个列表中,并进一步操作这些行。

我只得到包含$GPRMC的行数的输出,而没有这些行数的列表。

这将把行数、行字符串的元组放入列表请求行中:


@Claudiu的回答是正确的,只是想稍微了解一下python的真实情况,请执行以下操作:

[(idx,line) for idx,line in enumerate(open('gpsdata.txt')) if '$GPRMC' in line]

给定发布的代码,您应该得到p=[1]。我怀疑你的一些压痕被弄糟了。在任何一种情况下,当列表匹配时,你们都不会在任何地方添加行,所以你们不应该期望得到一个匹配行的列表…哦,是的,不敢相信我错过了那个一行。当然,如果您使用enumerate,您可以提供与我相同的输出。@Claudiu添加了enumerate,仅适用于您:
f = open('c:\Users\RuthvikWalia\Desktop\gpsdata.txt ','r')
req_lines = []
for i, line in enumerate(f):
    if "$GPRMC" in line:
        req_lines.append((i, line))
print req_lines
[(idx,line) for idx,line in enumerate(open('gpsdata.txt')) if '$GPRMC' in line]