【问题标题】:IndexError when filling multi-dimensional array with find_by_name使用 find_by_name 填充多维数组时出现 IndexError
【发布时间】:2013-09-19 12:32:33
【问题描述】:

你能帮我处理python多维数组吗?这是我的场景,我有一个字段数组和一个包含值数组的值数组。这是我的代码

late_payment_fields = ['latePaymentFee', 'latePaymentFeePer', 
                       'latePaymentFeeMax', 'latePaymentFeeMin']

payment_values = [['0', '0', '0', '10'], ['0', '0', '0', '10'],
                  ['10', '0', '5', '0'], ['', '101', '0', '0'],
                  ['10', '0', '0', '0'], ['0', '10', '12', '0']]

如您所见,我有 4 个字段和一组 payment_values。我在这里要做的是,我将为这些字段分配 6 组值,一次一组。这是我正在做的测试。所以这就是我一次将值分配给字段的方式。

def fillLatePaymentfields ():
    for i in payment_values:
    for index in range(len(payment_values)):
        browser.find_by_name(late_payment_fields[index]).fill(i[index])
        logger(f, 'Adding values to' + late_payment_fields[index])
    browser.find_by_id('utbFrmDiv').find_by_tag('a').first.click()
    errorChecking('', 'late_payment')

问题是我收到一条错误消息说

“browser.find_by_name(late_payment_fields[index]).fill(i[index]) IndexError: index out of range”

谁能告诉我为什么超出范围?

【问题讨论】:

  • 这段代码甚至没有运行。它在字节码编译中失败并出现 IndentationError。
  • 它在我的代码中正确缩进,我只是没有注意到在我在这里粘贴代码后它没有正确缩进。谢谢。

标签: python arrays


【解决方案1】:
for i in payment_values:
    for index in range(len(payment_values)):

len(payment_values) 应该是len(i) 吧?附言我们能给i 取个好听的名字吗?

【讨论】:

    【解决方案2】:

    range(len(payment_values)) 表示range(6)

    所以late_payment_fields[5] 抛出错误。

    试试芯片码

    late_payment_fields = ['latePaymentFee', 'latePaymentFeePer',
                           'latePaymentFeeMax', 'latePaymentFeeMin']
    
    payment_values = [['0', '0', '0', '10'], ['0', '0', '0', '10'],
                      ['10', '0', '5', '0'], ['', '101', '0', '0'],
                      ['10', '0', '0', '0'], ['0', '10', '12', '0']]
    
    def fillLatePaymentfields():
        indexes_of_payment_fields = range(len(late_payment_fields))
        for payment in payment_values:
            for index in indexes_of_payment_fields:
                print late_payment_fields[index], (payment[index])
                print 'Adding values to ' + late_payment_fields[index]
    
    fillLatePaymentfields()
    

    【讨论】:

      猜你喜欢
      • 2013-09-07
      • 2013-11-26
      • 2014-11-20
      • 2023-02-11
      • 2011-01-11
      • 1970-01-01
      • 2019-03-15
      相关资源
      最近更新 更多