Python 如何从测试文件的列中获取元素

Python 如何从测试文件的列中获取元素,python,Python,如果我有这样一个文本文件: 第1栏第2栏第3栏 熊5 10 海龟7 5 蛇9 7 大猩猩10 8 目标是根据函数中指定的参数值计算第2列或第3列的标准偏差。我知道如何计算标准偏差,所以问题是如何指定要使用的列,以及如何使用/读取文本文件中的值作为STD公式的输入(如果它们是列形式) 到目前为止,我的代码是: with open('file.txt','r') as f: for line in f: line = line.strip().split(" ") pr

如果我有这样一个文本文件:

第1栏第2栏第3栏

熊5 10

海龟7 5

蛇9 7

大猩猩10 8

目标是根据函数中指定的参数值计算第2列或第3列的标准偏差。我知道如何计算标准偏差,所以问题是如何指定要使用的列,以及如何使用/读取文本文件中的值作为STD公式的输入(如果它们是列形式)

到目前为止,我的代码是:

with open('file.txt','r') as f:
   for line in f:
      line = line.strip().split(" ")
      print (line) 
这所做的只是将每个条目拆分为一个列表。但我不知道如何索引每个列表的第二个元素并将它们添加到一起。它不会让我

from statistics import stdev


def sd(d, column):
    """Calculates SD. Given column can be 0 or 1"""
    return stdev([d[k][column] for k in d.keys()])


d = {}
with open("test.txt") as f:
    for line in f:
        line = line.strip().split()
        if line:
            d[line[0]] = (int(line[1]), int(line[2]))

calculated_sd = sd(d, 0)
这应该行得通。函数的参数列可以是0或1。
我所做的是读取文件并将信息存储到字典中,每个动物都是一个键,列是与动物键关联的元组。

顺便说一句,你应该先尝试编码你的方法,如果它不起作用,在这里询问,而不是直接询问代码

如果您知道如何计算标准偏差,我想您所需要的就是提取值。编辑一点您的代码:

def getcolumn(filename, idx):
    cval = []
    with open(filename,'r') as f:
        for line in f:
            cval.append(line.strip().split()[idx])
    return cval
这是一个可以在代码中实现的函数
filename
是一个字符串,其中包含文件名,
idx
要提取的列的索引(记住索引从0开始)。
line.strip().split()
是在列表中转换的行,因此插入要获取元素的列的索引并将其附加到
cval

调用函数:

values = getcolumn('file.txt', 1)

values
是包含文本文件第1列值的列表。您可以使用它来计算标准偏差。

您尝试过什么,它到底有什么问题?谢谢您的回答,我编辑并添加了我的代码。欢迎您!如果你觉得这个答案有用,记得把它标记为你问题的答案。快乐编码!你有没有办法看一下我在问题中发布的代码。我还编辑了问题本身。谢谢,但如果我们已经有一个列表要处理,为什么还要附加到列表中?它不是同一个列表
line.strip().split()
包含文件的一行
cval
包含您需要的列。这是从文本文件中提取列的可能方法之一。这不是唯一的方法,但我尽量接近您提供的代码。