当前位置: 首页 > 面试题库 >

'int'对象没有属性'__getitem__'

贡烨烁
2023-03-14
问题内容
import math
import os


class collection:
    col = [[0 for col in range(5)] for row in range(6)]
    dist = [[0 for col in range(6)] for row in range(6)]
    filename = ""
    result = ""

    def __init__(self,arg1):
        self.filename = arg1

    def coll(self):

        for i in range(6):
            try:
                if(i==0):
                    f = open(self.filename,'r')
                elif(i==1):
                    f = open("chap1.txt",'r')
                elif(i==2):
                    f = open("chap2.txt",'r')
                elif(i==3):
                    f = open("chap3.txt",'r')
                elif(i==4):
                    f = open("chap4.txt",'r')
                elif(i==5):
                    f = open("chap5.txt",'r')

                for j in range(5):
                    self.result = f.readline()
                    self.col[i][j] = self.result
            finally:
                print "file handling error"

    def distance(self):
        for i in range[6]:
            for j in range[6]:
                dis = 0
                for k in range[5]:
                    dis += math.fabs((self.col[i][k]-self.col[j][k])*(j-i))
                self.dist[i][j] = dis
                self.dist[i][i] = sys.maxdouble
        return self.dist

class profile:
    dist = [[0 for col in range(6)]for row in range(6)]
    filename = ""
    pque = [[0 for col in range(6)]for row in range(6)]
    d = [[0 for col in range(6)]for row in range(6)]
    par = [[0 for col in range(6)]for row in range(6)]
    st = 0

    def __init__(self,arg1):
        self.filename = arg1

    def begin(self):
        ob = collection(self.filename)
        ob.coll()
        dist = ob.distance()

    def sssp(self):
        for i in range(6):
            pque[i] = sys.maxdouble
            d[i] = sys.maxdouble
        d[0] = 0
        pque[0] = 0

        while isempty()==0:
            u = extract_min()
            for i in range(6):
                if d[i]>d[u]+dist[u][i]:
                   d[i] = d[u]+dist[u][i]
                   pque_deckey(i,d[i])
                   par[i]=u
                if u!=0:
                    print u
            print "\n"
            for i in range(6):
                print par[i]

    def extract_min():
        ret = 0
        shift = 0
        minimum = pque[0]

        for i in range(6):
            if pque[i]<minimum:
                minimum = pque[i]
                ret = i
        pque[ret] = sys.maxdouble
        return ret

    def isempty(self):
        count = 0
        for i in range(6):
            if pque[i] == sys.maxdouble:
                count=count+1
        if count==6:
            return 1
        else :
            return 0

    def pque_deckey(self,im,di):
        pque[im]=di

class main:
    filename = raw_input("enter name of student:\n")
    filename = filename + ".txt"
    if(os.path.exists(filename)==1):
        f = file(filename,"r")
    else:
        f = file(filename,"w+")
        att1 = raw_input("att1 score:\n")
        att2 = raw_input("att2 score:\n")
        att3 = raw_input("att3 score:\n")
        att4 = raw_input("att4 score:\n")
        att5 = raw_input("att5 score:\n")
        f.write(att1)
        f.write("\n")
        f.write(att2)
        f.write("\n")
        f.write(att3)
        f.write("\n")
        f.write(att4)
        f.write("\n")
        f.write(att5)
        f.write("\n")
    stud = profile(filename)
    stud.begin()
    stud.sssp()

它显示了运行时错误:

File "C:\Python27\winculum.py", line 33, in coll
    self.col[i][j] = self.result
TypeError: 'int' object has no attribute '__getitem__'

我只是python的初学者,即使在网上搜索后也无法纠正此问题。


问题答案:

错误:

'int' object has no attribute '__getitem__'

表示您正在尝试将索引运算符[]应用于int而不是列表。所以col即使在应该的时候也没有清单吗?让我们从那开始。

看这里:

col = [[0 for col in range(5)] for row in range(6)]

在内部使用其他变量名称,看起来列表理解会col在迭代过程中覆盖该变量。(不是在设置时 进行 迭代col,而是在以下过程中进行。)



 类似资料:
  • 问题内容: 我正在使用Flask开发论坛模板。当我尝试使用表单在浏览器中创建新线程时,SQLAlchemy抛出AttributeError。当我尝试与论坛到线程实现一对多关系以及与线程到用户实现一对多关系时,出现了问题。 models.py 所有新的帖子/主题,并在views.py中处理 views.py 问题答案: 问题是这样的: 你要使用ORM对象,而不是主键列: 该错误表示整数被解释为ORM

  • 这是我的密码: 这条线给了我错误 "属性错误:'浮点'对象没有属性'exp'"。X,t是Numpy ndarray。

  • 问题内容: 我正在开发Django应用程序,并且出现以下错误 我的模型是这样构造的 我应该做什么? 问题答案: 首先,您必须非常小心地重写以具有非可选参数。记住,每次从一个查询集中获取一个对象时,它将被调用! 这是您想要的正确代码: 如果您只使用该对象的子类,我强烈建议在Animal上设置abstract选项。这样可以确保不为动物创建表,而仅为绵羊(等)创建表。如果未设置abstract,则将创建

  • 我创建了这个简单的GUI: 我让用户界面启动并运行。当我点击按钮时,我在控制台上得到以下错误: 为什么设置为?

  • 问题内容: 我收到错误 当我在管理界面中保存新的CampCon条目时。我有一个名为Campsites的应用程序,它可以处理露营地的数据库,还有另一个名为Content的应用程序,它可以处理评论。我对Django非常陌生,这是我的第一个基于非教程的项目。我一直在绞尽脑汁,在网上搜索一个没有运气的答案。预先感谢您的帮助。这是我的露营地模型: 这是内容模型: 这是完整的回溯: 问题答案: 您的问题是您的

  • 问题内容: 我将Selenium webdriver(chrome)与Python结合使用,试图从网页上的所有链接中获取 href 。当我尝试以下操作时: 它设法获取所有链接,但是在get_attribute上出现错误: “ WebElement”对象没有属性“ Get_Attribute” 尽管到处都看起来很正常。 问题答案: “ Get_Attribute”属性不存在,但是“ get_attr