在python中将文本文件中的列拆分为列表

在python中将文本文件中的列拆分为列表,python,Python,我有一个包含8列的文本文件,如下所示 100 40 37 98 47 55 75 67 50 84 93 67 85 90 42 57 68 95 74 75 87 95 32 86 对于我的函数,我需要找到所有列的平均值等,如果指定。所以要做到这一点,我需要能够处理列,我不知道如何将所有列转换为列表 f=open(file,"r") lines=f.readlines() result=[] for i in lines: result.append(i.split(' ')[1])

我有一个包含8列的文本文件,如下所示

100 40 37 98 47 55 75 67
50 84 93 67 85 90 42 57
68 95 74 75 87 95 32 86
对于我的函数,我需要找到所有列的平均值等,如果指定。所以要做到这一点,我需要能够处理列,我不知道如何将所有列转换为列表

f=open(file,"r")
lines=f.readlines()
result=[]
for i in lines:
    result.append(i.split(' ')[1])
f.close()

我只有这个来提取1列,但如果有人能帮我提取每一列,我将不胜感激。我的老师希望我们使用纯python,所以没有像panda或numpy这样的附加组件。谢谢

我建议提取行,然后转置生成的列表:

打开(文件名)为f的
:
columns=list(zip(*(映射(int,row.split())表示f中的行)))
如果你愿意,我可以帮你解释其中的任何部分

f = open(filename,"r")

lines = []

for line in f:
    lines.append(map(int, line.strip().split()))

f.close()
现在我们有一个整数列表:

print(lines)
# [[100, 40, 37, 98, 47, 55, 75, 67], [50, 84, 93, 67, 85, 90, 42, 57], [68, 95, 74, 75, 87, 95, 32, 86]]
将行列表转换为列列表称为“转置”,因此使用此答案我们可以得到以下结果:

result = map(list, zip(*lines))

print(result)
# [[100, 50, 68], [40, 84, 95], [37, 93, 74], [98, 67, 75], [47, 85, 87], [55, 90, 95], [75, 42, 32], [67, 57, 86]]

这在python中很容易实现,但是我建议您看看
pandas
。如果您愿意走出“纯”的领域,Numpy也有一些函数可以使这一点变得非常简单pythonI相信我的老师希望我们在家庭作业问题上使用纯python,你应该始终指定这是一个家庭作业问题和相关限制。OP在原始问题中指定了家庭作业和限制“我的老师希望我们使用纯python,所以没有像panda或numpy这样的附加组件。”——这一点非常清楚。