【问题标题】:How to save the file content in python?如何在python中保存文件内容?
【发布时间】:2013-01-12 18:26:46
【问题描述】:

我刚开始研究python,这是一个非常基本的问题:

我有一个input.txt,其中包含以下测试用例:

b---d
-d--d
--dd-
--d--
----d

现在我想借助 python 代码将以上内容保存在5 X 5 Matrix 中。这样当我想返回matrix[0][2] 时,它会返回-

我该怎么做? 我试过了,但它打印出错误的答案。

【问题讨论】:

  • 欢迎来到 StackOverflow!如果您想了解更多信息,最好也发布您的代码(现在给您错误的结果)。这将使我们能够向您展示为什么它不起作用。

标签: python file matrix python-2.7


【解决方案1】:

这很容易,因为字符串和文件也是可迭代的:

with open('input.txt') as matrixfile:
    matrix = [list(line.strip()) for line in matrixfile]

list() 在字符串上将其转换为单个字符的列表;我们使用.strip() 删除任何多余的空格,包括换行符。 matrixfile 打开的文件对象是一个可迭代对象,因此我们可以遍历它来处理所有行。

结果:

>>> matrix
[['b', '-', '-', '-', 'd'], ['-', 'd', '-', '-', 'd'], ['-', '-', 'd', 'd', '-'], ['-', '-', 'd', '-', '-'], ['-', '-', '-', '-', 'd']]
>>> matrix[0][2]
'-'

【讨论】:

  • 西部最快的枪:)
【解决方案2】:

因此,由于 Martijn 发布明显答案的速度更快,所以这里有另一个想法:

您实际上根本不需要创建嵌套列表(“矩阵”):

with open("input.txt") as infile:
    matrix = [line.rstrip() for line in infile]

给你一个可以被索引的五个字符串的列表(这样做时会返回一个字符),就像嵌套列表一样:

>>> matrix
['b---d', '-d--d', '--dd-', '--d--', '----d']
>>> matrix[0][2]
'-'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 2022-12-06
    • 2012-01-06
    • 2020-07-10
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多