python中有dict的IndexError,

['Flyer Number','Address','Total SF','Class','Suite/Bldg','SF available','Rent/SF/Year','Term','Occupancy','User/Type','Leasing company','Contact','Listed','Divisible','FL 32771','104-112 E 1st St - Sanford','40,000 SF','C','P 2nd','7000','$7.80/mg','1 yr','Vacant','Office/N','Hotard Realty','Marie Hotard (407) 467-5397','15 Mths','N','110 W 1st St - Sanford','25,797 SF','B','P 2nd/Suite 214','366','$22.00/fs ','Negotiable',' Vacant ','Office/D ','Brenner Real Estate','Charles E. Brenner (407) 677','4 Wks',' N','P 2nd / Suite 234 ','198','$22.00/fs','P 2nd / Suite 240','1276','$16.00/fs','P 2nd / Suite 242','743','$18.00/fs','P 2nd / Suite 246','1357','P 2nd / Suite 250','720',' N']

我想知道如何获得它,以便form_orderer列表与dict中的类列表相对应。因此,我可以根据从最小到最大排序的form_order列表的顺序,按顺序打印类。我已经有了气泡排序方法,只需要字典上的帮助即可。

lz245548622 回答:python中有dict的IndexError,

您两次调用make_dicts,这会导致一个异常,它在get_vars和安装程序中被调用,如果我在get_vars中将其注释掉,我不会得到任何错误

classes = []
due = []
minutes =[]
grade = []
classname = []
classnume = []
form_orderer = []
listobj = []

i = 0
n = 0
k = 0

def classesl(): #setup class list
    classesnum = int(input("How many classes do you have?"))
    classnume.append(classesnum)
    for _ in range(0,int(classnume[0])):
        classname = input("What is the class name??")
        classes.append(classname)

def duel(): #setup class list
    print("How many days is this assignment for",classes[i],"due in?")
    c = input() 
    due.append(c)

def minutesl(): #setup class list
    print("How many minutes will this take","?")
    e = input()
    minutes.append(e)

def gradesl(): #setup class list
    print("What is your grade in that","?")
    g = input()
    grade.append(g) 

def getvars():
    global i 
    for _ in range(0,int(classnume[0])):
        duel()
        minutesl()
        gradesl()
        #make_dicts()
        i += 1


def form_order():
        for n in range(0,int(classnume[0])):
            a = int(minutes[n])
            b = int(grade[n])
            form_orderer.append(a/b)
            print(form_orderer)
            n += 1

def make_dicts():
        for k in range(0,int(classnume[0])):
                dictx = {'keyz': 'valz'}
                dictx.update({'class': classes[k],'form_order': int(form_orderer[k])})
                listobj.append(dictx)
                k += 1

def sort(form_orderer):
    size = len(form_orderer)
    for x in range(form_orderer):
        for y in range(form_orderer-x-1):
            if(form_orderer[y] > form_orderer[y+1]):
                tmp = form_orderer[j]
                form_orderer[y] = form_orderer[y+1]
                form_orderer[y+1] = tmp

def setup():
    while True:
        classesl()
        getvars()
        form_order()
        make_dicts()
       # sort(form_orderer)
        print()
        break

setup()
本文链接:https://www.f2er.com/3126540.html

大家都在问