我有一个由汽车详细信息组成的列表文件。
例如
1000001 Volvo v8
1000002 Mazda 2.0
最佳答案
听起来您需要拆分
每一行;您可以使用列表理解,如下所示
cars = [line.split() for line in open("Cars.txt")]
如评论中所述;你想要数字的数字表示。为此,您需要将数字列转换为数字。例如。
for i in range(len(cars)):
cars[i][0] = int(cars[i][0])
cars[i][-1] = int(cars[i][-1])
然后例如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")]
对于任何更复杂的数据文件读取,您可能需要使用例如 Pandas
。
生成器
正如 zondo 在评论中指出的那样,您可以考虑使用 generator
代替,它不会将所有数据加载到内存中(而是在请求时“生成”每个元素);这可以通过在理解中将 []
换成 ()
来完成:
cars = (line.split() for line in open("Cars.txt"))
然后您仍然可以像列表一样遍历汽车,但您不能索引生成器,就像列表一样。
关于python - 将列表转换为列表列表 Python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36085607/