使用find_by_name填充多维数组时的IndexError

时间:2013-09-19 03:41:04

标签: python arrays

你可以帮我解决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:索引超出范围”

有人可以告诉我它为何超出范围吗?

2 个答案:

答案 0 :(得分:0)

for i in payment_values:
    for index in range(len(payment_values)):

这里len(payment_values)肯定是len(i)?附:我们可以为i获得更好的名称吗?

答案 1 :(得分:0)

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()