1

你能帮我处理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”

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

4

2 回答 2

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

当然len(payment_values)应该在这里len(i)?PS我们可以给它取个好听的名字i吗?

于 2013-09-19T03:44:37.990 回答
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()
于 2013-09-19T04:32:33.120 回答