IndexError: list index out of range - python

后端 未结 2 2039
予麋鹿
予麋鹿 2021-01-06 17:34

I have the following error:

currency = row[0]
IndexError: list index out of range

Here is the code:

 crntAmnt = int(input(         


        
相关标签:
2条回答
  • 2021-01-06 18:05

    Try printing out the row. The convention for variable names in python are like_this and not likeThis. You might find the break keyword useful:

    for row in exch_reader:
        currency = row[0]
        if currency == crnt_currency:
            crnt_rt = row[1]
            break
    

    To only index the row when the row actually contains something:

    currency = row and row[0]
    

    Here row[0] is only executed if row evaluates to True, which would be when it has at least one element.

    0 讨论(0)
  • 2021-01-06 18:08

    You probably have a blank row in your csv file, causing it to produce an empty list

    There are a couple solutions


    1. Check if there are elements, only proceed if there are:

    for row in exchReader:
        if len(row):  # can also just do   if row:
            currency = row[0]
            if currency == crntCurrency:
    

    2. Short-circuit an and operator to make currency an empty list, which won't match crntCurrency:

    for row in exchReader:
        currency = row and row[0]
        if currency == crntCurrency:
    
    0 讨论(0)
提交回复
热议问题