bob*_*ora 2 python text list text-files python-3.x
我有一个由汽车详细信息组成的列表文件.
例如
1000001 Volvo v8
1000002 Mazda 2.0
Run Code Online (Sandbox Code Playgroud)
听起来你需要split每条线; 你可以使用列表理解,如下所示
cars = [line.split() for line in open("Cars.txt")]
Run Code Online (Sandbox Code Playgroud)
如评论中所述; 你想要数字的数字表示.为此,您需要将数字列转换为数字.例如
for i in range(len(cars)):
cars[i][0] = int(cars[i][0])
cars[i][-1] = int(cars[i][-1])
Run Code Online (Sandbox Code Playgroud)
那么例如cars[0][0]将是一个数字.或者,如果数字始终为正整数,则可以将其浓缩为:
readline = lambda l: [int(n) if n.isdigit() else n for n in l.split()]
cars = [[ readline(line) for line in open("Cars.txt")]
Run Code Online (Sandbox Code Playgroud)
对于任何更复杂的数据文件读取,您可能想要使用例如pandas.
发电机
正如zondo在评论中指出的那样,你可以考虑使用一个generator代替,它不会将所有数据加载到内存中(而是在请求时"生成"每个元素); 这可以通过交换完成[]了()在理解:
cars = (line.split() for line in open("Cars.txt"))
Run Code Online (Sandbox Code Playgroud)
然后你仍然可以像列表一样迭代汽车,但你不能索引到生成器,就像你可以列表一样.
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |