0

目标:读取数据文件(数值),创建数组/列表问题:每个数字都形成为数组,而不是我需要整个值作为一个数组/列表

输入数据文件 (1.txt):2 列由制表符分隔

0.85787 0.8E-03

0.8578 45.8E-03

0.857878 5.8E-03

0.657878 2.3E-03

…………

crs = open("1.txt","r")
for line in crs:
 x = line.split()
 k=str(x[0]) # string to avoid spacing problem
 v=str(x[1])
 print k[0]

k[0] 仅列出第一个数字,即

0

0

0

0

0

但我的要求是将 0.85787 存储在 k[0] .... 0.657878 在 k[3] ....

和 v[0] 中的 0.8E-03 ...... v[3] 中的 2.3E-03 .... 并进一步使用它,重要的是没有空格/间隙。

欢迎提出建议。

4

1 回答 1

0

如果您需要为数据的两列创建单独的列表,最简单的方法是在开始循环之前简单地创建列表,然后在循环文件时附加到它们:

k = []
v = []
with open("1.txt", "r") as crs:
    for line in crs:
        x = line.split()
        k.append(x[0]) # use float(x[0]) if you want numbers rather than strings
        v.append(x[1])

一个更“Pythonic”(但可能更难理解)的解决方案是使用生成器表达式和zip函数同时创建两个列表:

with open("1.txt", "r") as crs:
    k, v = zip(*(line.split() for line in crs))
于 2012-12-06T03:26:50.250 回答