在python中的列表列表中获取条目

时间:2015-10-01 03:53:12

标签: python

我有一个很大的.txt数据文件。我无法从列表列表中获取一行数据。相反,我得到的是列而不是条目。

这是我一直在使用的示例数据集......

['6/1/13', '9852', '54946', '47498.85', '220999.39', '26752', '2165', '0', '0']

['6/2/13', '17590', '72536', '70659.35', '291658.75', '28248', '4723', '4723', '289']

['6/3/13', '8599', '81135', '31547.41', '323206.16', '29611', '1160', '1160', '221']

['6/4/13', '17589', '98724', '106170.69', '429376.85', '31090', '2922', '2922', '394']

以下是我一直尝试的代码......

file = open("blahblah.txt","r")
data = []
for line in file:
    parts = line.strip().split()
    data.append(parts)
    print parts [0]

以下是我输入此代码时得到的输出。

6/1/13

6/2/13

6/3/13

6/4/13

当我要求打印parts[0]时,它不应仅列出列表列表的第一行吗?相反,它给了我4个列表的第一列中的条目。如何修复我刚刚获得以['6/1/13']

开头的第一行的代码

2 个答案:

答案 0 :(得分:1)

请查看以下代码

for line in file:
    parts = line.strip().split()
    data.append(parts)
    print parts [0]

首先,您的代码不起作用。即使它工作,print parts [0]指令也会在每次迭代中执行。因此,您将获得每个列表的第一部分。

目前尚不清楚文件的外观。我假设它就像你的样本数据一样。所以下面的代码可以工作。

import re

file = open("example.txt","r")
data = []
for line in file:
    line=re.sub('[\[\],\'\']', ' ', line)
    llist =line.split()
    data.append(llist)

print data[0][0]

输出:

6/1/13

要获得整行,请将print语句更改为print data[0]

输出:

['6/1/13', '9852', '54946', '47498.85', '220999.39', '26752', '2165', '0', '0']

答案 1 :(得分:1)

如果您的数据可由csv模块解析,则以下代码将起作用:

with open(txtpath, mode='r', newline='') as f:
    fReader = csv.reader(f, delimiter=' ')
    for rows in fReader:
        list0fRows.append(rows)
        print rows

parts [0]是零件清单中的第一个条目 - 我想你想要第一行的数据[0]。此示例中的代码将按顺序打印每一行。