【问题标题】:ValueError: invalid literal [closed]ValueError:无效的文字[关闭]
【发布时间】:2021-10-28 01:42:52
【问题描述】:

我正在尝试使用以下矩阵读取文本文件

2,1,1,3

2,1,2,3

1,1,2,3

3,G,3,1

【问题讨论】:

  • 您必须用逗号分隔行并将每个单独的值传递给int()。你也有G 值。它不适用于int()
  • 使用maze[0],您正在访问第一行。具体是'2,1,1,3\n'int() 类型转换不知道如何处理这个文字,因为 \n 和逗号。
  • 请将代码和数据添加为文本 (using code formatting),而不是图像。图片:A)不允许我们复制粘贴代码/错误/数据进行测试; B) 不允许根据代码/错误/数据内容进行搜索;和many more reasons。除了代码格式的文本之外,只有在图像添加了一些重要的东西,而不仅仅是文本代码/错误/数据传达的内容时,才应该使用图像。
  • 从您的代码中,您的文件可能更类似于此字符串:"4\n2,1,1,3\n2,1,2,3\n1,1,2,3\n3,G,3,1",第一行仅包含一个数字,该数字指定以下矩阵的维度

标签: python python-3.x matrix arraylist


【解决方案1】:
with open("maze.txt","r") as fd:
    maze = [i.split(",") for i in fd.read().splitlines()]
print(len(maze[0]))
print(maze)

【讨论】:

    【解决方案2】:

    您已将 n = int(maze[0]) 替换为以下内容 ->
    您必须先将其通过l = maze.split(",") 存储到列表中,然后您可以编写n = len(l) 以获取矩阵的长度。

    【讨论】:

    • maze 是一个字符串列表。你不能在列表中使用split
    猜你喜欢
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 2020-01-04
    • 2010-12-22
    • 2011-07-07
    • 2019-10-14
    相关资源
    最近更新 更多