我在python中有“列表索引超出范围”,但我不明白为什么

时间:2014-01-01 20:12:27

标签: python indexing range

datos = {"nombre": "Juan","apellido1": "Perez", 
         "apellido2": "Palma","sexo": "M","codigo":"30","ingreso": "2009"}

def generar_rol(datos):

    from definiciones import digito_verificador
    archivo= open('alumnos.dat')
    zzz=0
    nombret=datos['nombre']+datos['apellido1']+datos['apellido2']
    for linea in archivo:
        zzz+=1
        todo=linea.strip().split()
        print todo[2].split('|')      #<----HERE (line 24)
        nombre = todo[2].split('|')
        nombretotal=''.join(nombre)
        if nombret==nombretotal:
            break
    zzz= str(zzz)
    Z = ["0", "0", "0"]
    if len(zzz)  >= 1 :
        Z[-1] = zzz[-1]
    if len(zzz)  >= 2 :
        Z[-2] = zzz[-2]
    if len(zzz)  >= 3 :
        Z[-3] = zzz[-3]
    zzz = "".join(Z)      
    anno=''
    for i in datos:
        if int(datos['ingreso'])<2010:
            anno=datos['ingreso'][0]+datos['ingreso'][-1]
        if int(datos['ingreso'])>=2010:
            anno=datos['ingreso']    
    rol=anno+datos['codigo']+str(zzz)
    rol= rol+'-'+digito_verificador(rol)
    archivo.close()
    return rol

generar_rol(datos)

我有这个错误...

['JUAN', 'PEREZ', 'PALMA']
Traceback (most recent call last):
  File "C:\Users\pinky\Downloads\TAREA 3\TAREA 3\Tarea 3\funciones.py", line 50, in <module>
    generar_rol(datos)
  File "C:\Users\pinky\Downloads\TAREA 3\TAREA 3\Tarea 3\funciones.py", line 24, in generar_rol
    print todo[2].split('|')      #<----HERE
IndexError: list index out of range

1 个答案:

答案 0 :(得分:0)

索引超出范围意味着您正在尝试访问不存在的列表元素。索引计数从0开始,所以你可能意味着todo [1]得到第二个元素。