3 回答
TA贡献1829条经验 获得超9个赞
在这里尝试一下,首先拆分每一行,您将获得一个数字列表作为字符串,因此map可以使用函数将其更改为int:
with open('file.txt', 'r') as f:
k = [list(map(int,i.split())) for i in f.readlines()]
print(k)
TA贡献1836条经验 获得超3个赞
你并不需要应用str.strip和str.split独立。相反,将它们组合在一个操作中。列表推导式是通过定义一个列表元素,然后在循环上进行迭代来构建的for。
另请注意,str.strip不带参数将与\n空格一样处理。同样,str.split没有参数的情况下也会被空格分隔。
from io import StringIO
x = StringIO("""3 8 6 9 4
4 3 0 8 6
2 8 3 6 9
3 7 9 0 3""")
# replace x with open('some_file.txt', 'r')
with x as grid:
list_of_lists = [[int(elm) for elm in line.strip().split()] for line in grid]
结果:
print(list_of_lists)
[[3, 8, 6, 9, 4],
[4, 3, 0, 8, 6],
[2, 8, 3, 6, 9],
[3, 7, 9, 0, 3]]
使用内置功能,使用起来效率更高map:
list_of_lists = [list(map(int, line.strip().split())) for line in grid]
添加回答
举报