如何读取文本文件并转换为列表以与Python中的统计信息包一起使用

时间:2019-11-23 19:04:39

标签: python python-3.7

到目前为止,我正在运行的代码如下

sudo docker run --runtime=nvidia -it -v /homepath:/workspace -p 8888:8888 tensorflow/tensorflow:2.0.0a0-gpu-py3-jupyter

我的任务是创建一个显示该时间段内人口平均变化的程序。在此期间人口增长最大的年份。在这段时间内人口增长最小的年份(与上一年相比)。

该代码将在一行上打印每个文本文件条目,但是在尝试转换为int以与统计信息包一起使用时,出现以下错误:

values(index)= int(values(index))

SyntaxError:无法分配给函数调用

values(index)= int(values(index))行是从读取以及堆栈溢出资源中获取的。

2 个答案:

答案 0 :(得分:1)

您可以将ExecutorService更改为values = infile.read() 它将以列表而不是字符串的形式输出。

每当读取这样的文件时,往往会发生的事情之一是,在每一行的末尾都有一个不可见的values = list(infile.read()),它在文本文件中声明了新行,因此是一种拆分的简单方法只需用行将其转换为整数即可,而无需使用'\n',而可以使用values = list(infile.read())来将行的基础分开,只要先前声明了values = values.split('\n')

您拥有的while循环可以很容易地用for循环替换,在该循环中您将使用len(values)作为结束。

values部分是在while循环中执行此操作的一种不错的方法,但是每当在values(index) = int(values(index))循环中,您都可以使用for将它们转换为整数,然后{ {1}}成为整数列表。

我个人如何设置:

values[i] = int(values[i])

如果您需要对我在代码中所做的任何说明,只需询问即可。

答案 1 :(得分:0)

我个人将使用numpy读取文本文件。

在您的情况下,我会这样做:

import numpy as np

def main ():
    infile = np.loadtxt('USPopulation.txt')
    maxpop = np.argmax(infile)
    minpop = np.argmin(infile)
    print(f'maximum population = {maxpop} and minimum population = {minpop}')
main()