2017-09-24 51 views
0

错误我得到IndexError:列表索引超出范围

File "D:/hotel2.py", line 11, in addGuest guests[i].append(name) IndexError: list index out of range

hotel2.py

def addGuest(): 
    i = 0 
    j = 0 
    global guestid 
    name = input("Please enter guest name:\n") 
    guests[i].append(name) 
    guests[j].append(guestid) 
    print("Guest %s has been created with guest ID: %d" % (guests[i], guests[j])) 
    i += 1 
    j += 1 
    guestid += 1 

我真正想要做的是存储guestidguestname的方式,当我输入guestid时,我可以显示guestname。但是这个功能不会让我这样做。

+2

听起来像你需要一本字典... –

+0

我没有在这里的任何地方看到一个问题。你有没有具体的要求? – ratskin

回答

2

您更好地使用字典key:value比对两份名单:

guestid2name = {} 

def addGuest(): 
    name = raw_input('enter guest name:\n') 
    global guestid 
    guestid2name[guestid] = name 
    print("Guest %s has been created with guest ID: %d" % (name, guestid)) 

这将创建guestid年代guestid2name数据结构与客人的名字作为值。它比使用两个不同的列表来实现相同的事情更有效率。

+0

也许这个词典的名称比'd'更具描述性,比如'guestid2name'。 – Odysseas

+0

我接受了你的建议;它更具可读性 – Vinny

相关问题