Python 在数组中保存值的循环出错:索引器错误:列表索引超出范围
我想在数组中保存给定的值(输入)。不幸的是,它不起作用。我无法保存最后一个值,因为出现以下错误: --->18 zax[k].附加(abs) 索引器:列表索引超出范围 你知道哪里出了问题吗 这是我的密码:Python 在数组中保存值的循环出错:索引器错误:列表索引超出范围,python,arrays,list,indexing,Python,Arrays,List,Indexing,我想在数组中保存给定的值(输入)。不幸的是,它不起作用。我无法保存最后一个值,因为出现以下错误: --->18 zax[k].附加(abs) 索引器:列表索引超出范围 你知道哪里出了问题吗 这是我的密码: ax = np.array([]) k = 0 l = 0 mehrfach = int(input('Please write how often you measured your samples.\n Please write an integer. F
ax = np.array([])
k = 0
l = 0
mehrfach = int(input('Please write how often you measured your samples.\n
Please write an integer. For example: Duplicates: 2; Triplicates: 3; etc.'))
werte = int(input('Please write how much samples you have.\n
Please write an integer. For example: Two different samples: 2; Three different samples: 3, etc.'))
zax=[[] for k in range(mehrfach)]
#while k < (werte):
for k in range(werte):
#for k in range(werte): #samples
#while l < (mehrfach): #duplicates
for l in range (mehrfach):
abs = float(input('Please write down your measured absoprtion (float).'))
zax[k].append(abs)
l = l+1
k = k+1
print('Measured absorptions:',zax)
ax=np.array([])
k=0
l=0
mehrfach=int(输入('请写下测量样本的频率。\n
请写一个整数。例如:重复:2;重复:3;等等)
werte=int(输入('请写下您有多少样本。\n
请写一个整数。例如:两个不同的示例:2;三个不同的示例:3,等等。)
zax=[]表示范围内的k(mehrfach)]
#而k<(werte):
对于范围内的k(werte):
#对于范围内的k(werte):#样品
#而l<(mehrfach):#重复
对于范围内的l(mehrfach):
abs=浮动(输入('请写下测量的绝对值(浮动)。'))
zax[k].附加(abs)
l=l+1
k=k+1
打印('测量的吸收率:',zax)
干杯您应该添加验证检查,以确保
werte
不大于mehrfach
。如果werte
大于mehrfach
,您将在试图设置zax[k]
的内部循环中得到一个索引器
原因是您正在将zax
设置为一个包含n个列表的列表,其中n等于mehrfach
。在循环中,您试图使用zax[k]
设置列表项,其中k是从werte
定义的。如果werte
mehrfach
您将尝试设置内部循环中不存在的值zax[k]
,并且将抛出索引器。为什么要执行k=k+1?这将在一次迭代中使k增加2。zax[k].append(abs)
基于k范围内(werte)
,但您可以使用k范围内(mehrfach)
创建列表zax
,也不需要初始化k和l。默认为零。谢谢@Benoîzi。你解决了我没看到的问题。谢谢你阿什伯恩给我的建议。