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

如果我有一个类似以下形式的文本文件:


第 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) 

所做的就是将每个条目拆分为一个列表。但我不知道如何索引每个列表的第二个元素并将它们加在一起。它不会让我


四季花海
浏览 168回答 2
2回答

忽然笑

from statistics import stdevdef 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 列值的列表。您可以使用它来计算标准偏差。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python