python - 将文件内容转换为嵌套列表
问题描述
我有一个文本文件,包含
2、1、3
3、1、3
2、9
我的输出应该是
[[2,1,3],[3,1,3],[2,9]]
我该怎么做?
我试过了
data=[]
for line in open(file,'r'):
items = line.rstrip('\r\n').split('\t')
items = [item.strip() for item in items]
(data.append(items))
return data
但是 [['2,1,3'],['3,1,3'],['2,9']] 出来了。我不希望输出影响报价。
解决方案
您还可以使用列表推导:
with open('file.txt', 'r') as f:
lines = [[int(n) for n in line.strip().split(',')] for line in f.readlines() if line.strip()]
基本上,readlines()
返回一个列表,其中每个元素都是一行。
['2, 1, 3\n', '\n', '3, 1, 3\n', '\n', '2, 9']
.
我们要拆分每一行(如果它包含数字到它自己的列表
线
[line.strip().split(',') for line in f.readlines() if line.strip()]
将给出以下输出:
[['2', ' 1', ' 3'], ['3', ' 1', ' 3'], ['2', ' 9']]
由于我假设想要的输出是整数列表,我们需要将每个元素转换为 int,这也可以通过使用列表推导添加来实现:
[[int(n) for n in line.strip().split(',')] for line in f.readlines() if line.strip()]
(line.strip()
将检查一行是否为空)
输出:
[[2, 1, 3], [3, 1, 3], [2, 9]]
推荐阅读
- c++ - 错误:在 xeus-cling 中不允许函数定义
- python-3.x - 请如何构建和训练 tensorflow 模型以重新识别唤醒词“red on”和“red off”。我想控制一个 LED
- sql - 优化这个简单的 SQL 查询?
- css - 调整大小时使div不移动
- react-native - 替换数组中的项目反应原生
- user-interface - AppleScript - 如何检测是否在 GUI 上单击了特定按钮并终止脚本?
- rust - print!() 格式化带有终端转义码的字符串
- xslt - Libxslt 是否支持可变参数?
- r - 在同一图上绘制时间序列中的每个变量
- python - python中(和,&,或,|)的等价物是什么?