目标:读取数据文件(数值),创建数组/列表 问题:每个数字都形成为数组,而我需要将整个值作为一个数组/列表
输入数据文件(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
但我的要求是在k [0]中存储0.85787 ....在k [3]中存储0.657878 ....
v [0]中的和0.8E-03 ...... v [3]中的2.3E-03 ....并进一步使用它,重要的是没有空格/间隙。
欢迎提出建议。
答案 0 :(得分: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))