【问题标题】:convert .txt file into a list of integers in python [duplicate]将.txt文件转换为python中的整数列表[重复]
【发布时间】:2017-05-07 16:50:58
【问题描述】:

说,我有一个文件,内容如下:

1
2
3
4
5
6
7
8
9
10

我想将它创建为 Python3 中的整数列表,即 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

f = open("stan.txt","r")

myList = []

for line in f:
   myList.append(line)

print(myList)

lst = []
for i in myList:
    i = i[:-1]
    lst.append(int(i))
print(lst)

这是我的详细代码。有没有优雅简洁的方式来做到这一点?

【问题讨论】:

  • txt文件中的数字不要写在一行,而是写在后面的文件中。我是这样写的,但它改变了
  • 然后编辑您的问题。
  • 你能告诉我怎么做吗?
  • for line in f: myList.append(int(line))
  • 这个问题太重复了,它的重复有重复。

标签: python python-3.x


【解决方案1】:

使用列表推导:

with open('stan.txt') as f:
  my_list = [ int(i) for i in f ]

【讨论】:

  • int() 删除空格,不需要.rstrip()
【解决方案2】:

如果文件不是很大,将其作为字符串读取,将字符串拆分为数字,然后使用列表推导将int() 应用于每个数字:

with open("stan.txt") as f:
    lst = [int(x) for x in f.read().split()]

【讨论】:

  • 感谢您的回复。我希望我可以投票。
  • 这里唯一的缺点是您在处理之前将所有文件读入内存,而不是逐行迭代。
  • @rumdrums 正如我所说,它在文件不大的情况下有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
相关资源
最近更新 更多