【问题标题】:how to add items in a nested list in python? from user input如何在python的嵌套列表中添加项目?从用户输入
【发布时间】:2020-05-22 06:32:30
【问题描述】:

输入第一个嵌套列表后出现错误-“IndexError: list index out of range”

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]]

【问题讨论】:

    标签: python python-3.x list nested software-design


    【解决方案1】:

    你正在使用

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

    但是2列表中没有2的位置

    做什么

    你应该使用函数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)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-31
      • 2011-10-16
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多