Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我无法访问列表元素_Python_Python 3.x_Python 2.7_Index Error - Fatal编程技术网

Python 我无法访问列表元素

Python 我无法访问列表元素,python,python-3.x,python-2.7,index-error,Python,Python 3.x,Python 2.7,Index Error,这可能是一个愚蠢的问题,但在执行此代码后,它给出了此错误 pl.append(a[0]) IndexError: list index out of range 代码- 执行此代码后,会出现此错误-字符串中可能没有与正则表达式匹配的内容,因此a是一个空列表。如果要访问索引0或1处的列表,必须检查列表是否足够长 import re f=open("finetuning.txt", "r") lines = f.readlines() pl=[] discriminator=[] fo

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

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


执行此代码后,会出现此错误-

字符串中可能没有与正则表达式匹配的内容,因此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)

那么,想想看:如果索引
0
超出范围,那么会有多少个元素?您是否尝试检查
a
的值?您是否尝试检查了
行的值
?是的,在打印一行后,它有
['50'、'100000'、'0.0849'、'1.8333']
此值,但它是否每行都有输出?文件结尾可能有一个空行,此代码将抛出该空行。你认为你的文件没有以
\n
结尾吗?@Gabip谢谢你。。这就是问题所在。一个文件末尾有两个空行。是的,足够长了。。我也有同样的想法。但只打印一行就可以得到这个o/p-“['50',100000',0.0849',1.8333']”当你为文件中的每一行打印a时,输出是什么?当我打印
a
时,o/p是-
['50',100000',0.0849',1.8333']
有这样的1988行列表索引超出范围意味着您的列表太短,只有2000行,您不会注意到一个空列表。放置一个try-catch块,当您捕获一个exeption时,打印一个并查看输出。您仍然应该添加if。这是一个很好的实践,您主要希望您的代码能够处理有人编辑文件的情况,或者您得到一个可能包含空行的新文件。
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)