Python - 将文本列转换为数组,以便访问数组中的每个数字
我有一个文本文件,里面有很多列的数据。我用下面的代码成功地打印出了我感兴趣的两列的所有内容:
with open(file) as catalog:
for line in catalog:
column = line.split()
if not line.startswith('#'): #skipping column labels
x = float(column[3])
y = float(column[4])
现在,如果我在'if not'循环里面加上一个print(x)命令,它会打印出所有的x值。但是如果我把print(x)放在循环外面,它只会打印最后一个值。我想要的是能够在我的代码的任何地方访问到完整的x和y值数组。而且我还需要能够单独访问x/y数组里的每个项目,比如我想说x[2],它能给我x数组里的第三个值。即使在'if not'循环里面,我也无法做到这一点。谢谢大家的帮助,我才刚学Python几周。
2 个回答
-1
听起来你需要建立一个值的列表。
with open(file) as catalog:
x_values = []
y_values = []
for line in catalog:
column = line.split()
if not line.startswith('#'): #skipping column labels
x_values.append(float(column[3]))
y_values.append(float(column[4]))
2
把你的 X 和 Y 值放到一个列表里:
X_list = []
Y_list = []
with open(file) as catalog:
for line in catalog:
column = line.split()
if not line.startswith('#'): #skipping column labels
x = float(column[3])
y = float(column[4])
X_list.append(x)
Y_list.append(y)
#then print the lists if you wish
print(X_list)
print(Y_list)