Python 在数组中保存值的循环出错:索引器错误:列表索引超出范围

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

我想在数组中保存给定的值(输入)。不幸的是,它不起作用。我无法保存最后一个值,因为出现以下错误:

--->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. 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。你解决了我没看到的问题。谢谢你阿什伯恩给我的建议。