python - 如何在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]]
解决方案
您正在使用
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)
我不知道你在做什么,你的答案还是这样
推荐阅读
- javascript - 下载从 Spring Boot Server 生成的角度 PDF
- mongodb - 如何在 mongodb 中保存 java.time.Instant 并毫无例外地加载相同的值?
- reactjs - 创建 React App 未安装完整文件
- android - android 本机代码 (libc.so) 中的相机崩溃仅在三星 Snapdragon Android 11 设备上
- sql - 尽管有条件语句,但每次都触发运行
- .net-core - 在 VS2019 中发布自包含的 .Net Core 3.1 时,“请求被中止:无法创建 SSL/TLS 安全通道”
- firebase - 一直在尝试使用 Firebase 在文件上设置自定义时间?
- android - 错误:[Dagger/MissingBinding] java.util.ArrayList
如果没有 @Inject 构造函数或 @Provides-annotated 方法,则无法提供 - python - 如何将应用函数链接到熊猫数据框的子集
- javascript - 同时映射两个数组并传递给一个 React 组件