我想做一个程序,从一个文本文件中提取一个数字列表。文件每行有一个整数。我试着像这样打开文件:
data = open(file).readlines()
但是如果我这样做,换行符\n
会包含在列表中,并且我的bubblesort只按第一个数字排序(即6在19之后)。下面是一个运行程序的例子。我首先打印出未排序的列表,然后打印排序的列表
['13\n', '6\n', '87\n', '19\n', '8\n', '23\n', '8\n', '65']
['13\n', '19\n', '23\n', '6\n', '65', '8\n', '8\n', '87\n']
需要整数列表:
当然,最好一次只读取一个整数,而不是读取整个文件,然后将其转换为整数:
您需要将} 来完成
data
的元素转换成int,因为文件是作为字符串读入的。在进行转换之前,删除\n
字符可能也是明智的,这可以通过^{使用列表理解:
我添加了^{} 上下文管理器。在打开文件时使用它通常是一种很好的做法,因为它可以确保文件在打开之后被保存。还要注意的是,实际上并不需要
readlines
——在文件上迭代会默认地将每一行作为字符串提供实际上,甚至不需要
strip
,因为int
似乎会自动去除空白。我可能会留着以防万一我建议去掉换行符和int转换。您可以在一行简洁的列表理解中完成这一点,但是如果列表理解语法混乱,for循环也就足够了
相关问题 更多 >
编程相关推荐