在Python 2.7类中搜索2D数组

时间:2015-05-03 15:16:35

标签: python arrays python-2.7

我认为这是因为我是一个新手 Python和我第一次学习写作课程。我想要实现的是让班级根据用户输入打开一组文本文件中的一个。文本文件包含以下信息:

 20,21,22
 23,24,25
 26,27,28

文本文件被读取为2D数组。从该数组中读取一个值并将其赋值给一个新变量,以便可以打印该变量并在以后的计算中使用。我已经能够在课堂上毫无困难地完成这项工作,但是让它在课堂上工作一直令人沮丧。这是我到目前为止用于Python 2.7的代码:

im_new = []

class Read(object):
    def __init__(self, agev, table, row, col, newvar):
        self.agevar = agev
        self.table = table
        self.row = row
        self.col = col
        self.newvar = newvar

        display_list = []


        with open(self.table + str(self.agevar) + ".txt", "r") as data_file:
            for line in data_file:
                display_list.append(line.strip().split(','))

    def __str__(self):
        self.newvar = (display_list[self.row][self.col])

immem = Read(40, "im", 1, 2, im_new)


print "Immediate Memory: " % im_new

理想情况下,引用示例文本文件,输出将是"立即存储器:25",但我得到的输出是"立即存储器:"当我在控制台中打印值im_new时,我得到" []"。我确定我失踪的事情非常明显。任何帮助,将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

你的代码出了问题,它也没有运行。我试着修理:

im_new = []

class Read(object):
    def __init__(self, agev, table, row, col, newvar):
        self.agevar = agev
        self.table = table
        self.row = row
        self.col = col
        self.newvar = newvar

        self.display_list = []


        with open(self.table + str(self.agevar) + ".txt", "r") as data_file:
            for line in data_file:
                self.display_list.append(line.strip().split(','))

    def __str__(self):
        self.newvar = (self.display_list[self.row][self.col])
        return self.newvar

immem = Read(40, "im", 1, 2, im_new)


print "Immediate Memory: ", immem

这会像您期望的那样返回Immediate Memory: 25,但我不确定这是您想要的。