首页 > 解决方案 > 如何在python的嵌套列表中添加项目?从用户输入

问题描述

输入第一个嵌套列表后出现错误-“IndexError:列表索引超出范围”

def add_hotel(name,n,ac,fb,tv,wifi,budget):
                room=[[]]
                room[2][1]=name

                if(n>0):
                    for i in range(2,n+2):
                                room[i][1]=1
                                if(ac=="y" or"Y"):
                                    room[i][2]="Air Conditioning"

                                else:
                                    room[i][2]="No Air Conditioning"
                                if(fb=="y" or "Y" ):
                                    room[i][3]="Free Breakfast"
                                else:
                                    room[i][3]="Free Breakfast Not Available"
                                if(tv=="y" or "Y"):
                                    room[i][4]="TV Available"
                                else:
                                    room[i][4]="No TV"
                                if(wifi=="y" or "Y"):
                                    room[i][5]="Wifi"
                                else: 
                                    room[i][5]="No Wifi"

                                room[i][5]=budget
                                print(room)
                print(room)

这里 n 是房间数,我从索引 2 初始化它,因为我有两个预定义的列表实体。我希望我的输出看起来像这样-(n=2)

[[hayat,1,"No Air Conditioning","Free Breakfast Not available","No TV","Wifi",30],[hayat,2,"No Air Conditioning","Free Breakfast Not available","TV available","Wifi",50]]

标签: pythonpython-3.xlistnestedsoftware-design

解决方案


您正在使用

room[i][2]="Air Conditioning"

但是列表2中没有位置room[i]

该怎么办

你应该使用函数listname.append(val)

room[i].append("Air Conditioning")

你的代码变成

def add_hotel(name,n,ac,fb,tv,wifi,budget):
                room=[]
                room_tmp=[name]

                if(n>0):
                    for i in range(2,n+2):




                                room_tmp.append(1)
                                if(ac=="y" or"Y"):
                                    room_tmp.append("Air Conditioning")

                                else:
                                    room_tmp.append("No Air Conditioning")
                                if(fb=="y" or "Y" ):
                                    room_tmp.append("Free Breakfast")
                                else:
                                    room_tmp.append("Free Breakfast Not Available")
                                if(tv=="y" or "Y"):
                                    room_tmp.append("TV Available")
                                else:
                                    room_tmp.append("No TV")
                                if(wifi=="y" or "Y"):
                                    room_tmp.append("Wifi")
                                else: 
                                    room_tmp.append("No Wifi")

                                room_tmp.append(budget)
                                room.append(room_tmp)
                                print(room)
                print(room)

我不知道你在做什么,你的答案还是这样


推荐阅读