如何在列表解析中编写以下代码?
with open('some_file.txt', 'r') as f:
lines = f.readlines()
lines = [line.strip('\n') for line in lines]
list_of_lists = [[int(elm) for elm in line.split(' ')] for line in lines]
我的文件看起来像这样:
3 8 6 9 4
4 3 0 8 6
2 8 3 6 9
3 7 9 0 3
这意味着:
grid = '3 8 6 9 4\n4 3 0 8 6\n2 8 3 6 9\n3 7 9 0 3'
4条答案
按热度按时间piwo6bdm1#
在这里尝试一下,首先拆分每行,你会得到一个字符串形式的数字列表,所以可以使用
map
函数将其更改为int
:nbnkbykc2#
int
不关心换行符,因此您可以跳过剥离这些字符。请注意,
pandas
和numpy
提供了用于阅读数据的高级功能,例如:例如numpy.loadtxt
或pandas.read_csv
。wgx48brx3#
您不需要分别应用
str.strip
和str.split
。相反,将它们合并到一个操作中。列表解析是通过定义一个列表元素,然后在for
循环上进行迭代来构造的。还要注意,没有参数的
str.strip
将处理\n
以及空白。类似地,不带参数的str.split
将被空格分隔。结果:
使用内置插件,使用
map
稍微更有效:bvuwiixz4#
你可以使用Map功能
或者你可以实现它更短