Python 索引器:列表索引超出范围;试图作为论据通过

Python 索引器:列表索引超出范围;试图作为论据通过,python,Python,我对Python非常陌生,我正在尝试编写一个脚本,让我可以从我生成的几个文件中读取数据(它们有一套命名方案)。但是当我试着运行它时,我总是得到上面的索引器 before = [29, 22, 21] after = [6, 6, 1] prop = ['n_force', 'n_force_sub', 'x_force', 'x_force_sub'] for pi in prop: for m in before: t, fn = np.genfromtxt("peg

我对Python非常陌生,我正在尝试编写一个脚本,让我可以从我生成的几个文件中读取数据(它们有一套命名方案)。但是当我试着运行它时,我总是得到上面的索引器

before = [29, 22, 21]
after = [6, 6, 1]
prop = ['n_force', 'n_force_sub', 'x_force', 'x_force_sub']

for pi in prop:
    for m in before:
        t, fn = np.genfromtxt("peg_4_60_shear_{0}.{1}.{2}".format(before[m],after[m],prop[pi]),unpack=True, skiprows=2)
编辑|问题已解决:我通过将
之前的
之后的
数组转换为字符串并将代码更改为以下内容来解决问题:

before = ['29', '22', '21']
after = ['6', '6', '1']  
prop = ['n_force', 'n_force_sub', 'x_force', 'x_force_sub']        

for l in range(0,3):
      for m in range(0,2):
          t, fn = np.genfromtxt("peg_4_60_shear_{0}.{1}.{2}".format(before[m], after[m], prop[l]) ,unpack=True, skiprows=2) 

之后我有了更多的代码来打印抓取的数据,但现在我正在将数据保存到一个文件或其他东西中。谢谢大家:)

当处理两个不同的列表时,您需要将它们
zip()

for pi, m in zip(prop, before):
    t, fn = np.genfromtxt("peg_4_60_shear_{0}.{1}.{2}".format(before[m],after[m],prop[pi]),unpack=True, skiprows=2)

m
之前循环
,并将依次获得值
29、22、21

before
before
没有30个元素,因此[m]
之前的
和[29]之前的
将中断

如果您想同时在两个序列上循环,那么最好使用值配对,例如

for pi in prop:
  for b,a in zip(before, after):
    t, fn = np.genfromtxt("peg_4_60_shear_{0}.{1}.{2}".format(b, a, prop[pi]),unpack=True, skiprows=2)

before=[29,22,21
未运行。发布实际代码。此外,发布完整错误