python - 将列表转换为列表列表 Python 3

标签 python list python-3.x text text-files

我有一个由汽车详细信息组成的列表文件。

例如

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/

相关文章:

python - 创建类似于给定模板的虚假数据

python - 用Python中的数据制作直方图

python - 多态一对多关系,其中 "many"属于不同子类

python - 在不更改 python 中的外部列表的情况下展平内部列表

html - (HTML) 完整的 Divs 列表?

python-3.x - Django NoReverseMatch : Reverse for ‘entry’ not found. ‘login’ 不是有效的 View 函数或模式

python - 为什么这种模拟退火算法应用于TSP不收敛?

python - 将Python列表中第一个单词的首字母大写

python - 如何注释 Python 函数以提示它采用与另一个函数相同的参数?

python - 如何向 df 添加一列以对 A 列中条目的所有匹配值求和?