Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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_List_Terminal - Fatal编程技术网

Python 终端输出中的额外字符和顺序更改?这是一个终端问题吗?

Python 终端输出中的额外字符和顺序更改?这是一个终端问题吗?,python,list,terminal,Python,List,Terminal,为什么我在列表结构的输出中看到额外的]字符,而这些字符应该只有一个列表列表?这是一个终端问题吗 特别是,它应该只有两个级别的列表,全局列表和其中的每个子列表 通过读取包含由“\n”分隔的整数值序列的文件而产生此结果的代码是: 所以这里一切看起来都很好(?) 但是,当我在中读取Python解释器中的数据输出时。然后我看到这样的事情: 注意额外的]就好像有不应该存在的内部列表一样。还要注意的是,尽管在数据中已排序,但编号似乎不符合顺序。 这里发生了什么事 要重建问题可以从这里下载Dorothea

为什么我在列表结构的输出中看到额外的]字符,而这些字符应该只有一个列表列表?这是一个终端问题吗

特别是,它应该只有两个级别的列表,全局列表和其中的每个子列表

通过读取包含由“\n”分隔的整数值序列的文件而产生此结果的代码是:

所以这里一切看起来都很好(?)

但是,当我在中读取Python解释器中的数据输出时。然后我看到这样的事情:

注意额外的]就好像有不应该存在的内部列表一样。还要注意的是,尽管在数据中已排序,但编号似乎不符合顺序。

这里发生了什么事


要重建问题可以从这里下载Dorothea数据集:

然后启动Python解释器(我使用的是CoCalc中的解释器)并将上面的函数粘贴到那里


然后在dorothea_valid.data上调用read_datafile()并打印它(最好是在CoCalc中,在CoCalc中可以看到这个问题)。当向右滚动到底部时可以看到屏幕捕获的行,但是也可以从输出的其他部分看到问题。

您正在创建内部列表。您在文件的每行使用一个列表,因此它在每行生成一个整数列表。如果希望将所有内容作为一个列表,请使用
extend
而不是
append

for line in file:
    data.extend(int(i) for i in line.split())

注意,我在这里使用的是生成器表达式,而不是列表。使用列表理解是一种浪费,因为它在内存中创建整个列表,只需阅读一次,然后就被丢弃。

请将输出作为文本而不是图像发布。另外,您应该创建一个演示问题的。您没有
print
语句,因此我不确定您如何获得任何输出供我们查看。也许您需要
data.extend([int(I)for I in line.split()])
。使用
append
在名为
data
的列表中,每一行都是自己的列表。谢谢。看到整数顺序混合的问题如何?同样,当用extend替换append时,我看到:。那么还有什么问题吗?或者CoCalc终端的输出可能有点奇怪?它看起来确实像终端问题。应该在输出的中间打印提示(> >)。如果某个基于web的IDE坏了,一点也不奇怪。尝试在本地使用python或ipython。
for line in file:
    data.extend(int(i) for i in line.split())