我无法访问列表元素

问题描述 投票:0回答:1

这可能是个愚蠢的问题,但在执行这段代码后,它给出了这样的错误信息

pl.append(a[0])
IndexError: list index out of range

编码

import re

f=open("finetuning.txt", "r")
lines = f.readlines()

pl=[]
discriminator=[]




for line in lines:
    a = re.findall('\d*\.?\d+',line)
    pl.append(a[0])
    discriminator.append(a[1])




print(pl,discriminator)

在执行这段代码后,它给出了这样的错误信息-。

python python-3.x python-2.7 index-error
1个回答
1
投票

有可能是字符串中没有匹配到正则表达式,所以a是一个空列表。如果你想在索引0或1处访问列表,你必须检查列表是否足够长。

import re

f=open("finetuning.txt", "r")
lines = f.readlines()

pl=[]
discriminator=[]




for line in lines:
    a = re.findall('\d*\.?\d+',line)
    if len(a) >= 0:
        pl.append(a[0])
    if len(a) >= 1:
        discriminator.append(a[1])




print(pl,discriminator)
© www.soinside.com 2019 - 2024. All rights reserved.