Python - 将文本列转换为数组,以便访问数组中的每个数字

1 投票
2 回答
1708 浏览
提问于 2025-04-18 15:05

我有一个文本文件,里面有很多列的数据。我用下面的代码成功地打印出了我感兴趣的两列的所有内容:

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)

撰写回答