尝试打印数字12,但只打印数字1

时间:2018-04-03 18:13:35

标签: python

def computes(text):
    file=open(text)
    line=file.readlines()
    for i in range(0,len(line)):
        print(str(line[i][1]))

输出

[4, 4, 3, 4, 0]
[9, 7, 6, 8, 0]
[6, 6, 4, 2, 2]
[9, 10, 6, 8, 6]
[12, 9, 6, 9, 2]
[12, 12, 2, 4, 1]
[5, 6, 3, 4, 16]
[24, 21, 14, 16, 0]
[3, 2, 2, 5, 0]
[10, 10, 10, 0, 9]
4
9
6
9
1
1
5
2
3
1

我试图做的是循环显示内部列表数组的文本,我正在尝试打印数字12,但只打印第一个数字,我不知道从哪里开始这里。我怎么能纠正这个?

3 个答案:

答案 0 :(得分:1)

文件中的数据存储为文本,这意味着列表只是字符串表示而不是实际的Python对象。因此,您需要将它们转换为Python列表以打印整数。您可以通过在每个列表上执行ast.literal_eval来完成此操作:

.length

答案 1 :(得分:1)

如果您的文件采用此格式,则为一个空格分隔数字:

  • 4 4 3 4 0
  • 9 7 6 8 0
  • 10 11 12 13

您可以使用此代码:

def computes(text):
    file=open(text)
    for line in file:
        numbers = line.split(" ")
        for number in numbers:
            print(number)
computes("text.txt")

答案 2 :(得分:0)

    print(str(line[i][1]))

您只使用[1]索引打印每行的第二个字符,该索引对应于第二个元素。

如果要打印整行,请执行以下操作:

print(str(line[i]))

我不确定这是不是你的意思。