更改从文本文件中获取的列表的显示

时间:2014-04-30 19:41:58

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

我用Python编写了这段代码:

with open ('textfile.txt') as f:
     list=[]
     for line in f:
          line = line.split()
          if line: 
              line = [int(i) for i in line] 
              list.append(line)
     print(list)

这实际上从文本文件中读取整数并将它们放在列表中。但实际上结果为:

[[10,20,34]]

但是,我希望它显示如下:

10 20 34

怎么做?谢谢你的帮助!

4 个答案:

答案 0 :(得分:3)

您可能只想将这些项目添加到列表中,而不是添加它们:

with open('textfile.txt') as f:
    list = []
    for line in f:
        line = line.split()
        if line:
            list += [int(i) for i in line]

    print " ".join([str(i) for i in list])

如果将列表附加到列表,则创建子列表:

a = [1]
a.append([2,3])
print a    # [1, [2, 3]]

如果你添加它,你会得到:

a = [1]
a += [2,3]
print a    # [1, 2, 3]!

答案 1 :(得分:1)

with open('textfile.txt') as f:
    lines = [x.strip() for x in f.readlines()]

print(' '.join(lines))

使用输入文件' textfiles.txt'包含:

10
20
30

打印:

10 20 30

答案 2 :(得分:0)

听起来您正在尝试打印列表列表。最简单的方法是迭代它并打印每个列表。

for line in list:
    print " ".join(str(i) for i in line)

另外,我认为list是Python中的关键字,所以尽量避免命名你的东西。

答案 3 :(得分:0)

如果您知道文件不是很长,如果您想要整数列表,您可以立即执行(两行,其中一行是with open(...。如果您想以您的方式打印它,您可以将元素转换为字符串并通过' '.join(...加入结果 - 如下所示:

#!python3
# Load the content of the text file as one list of integers.
with open('textfile.txt') as f:
    lst = [int(element) for element in f.read().split()]

# Print the formatted result.
print(' '.join(str(element) for element in lst))

不要对变量使用list标识符,因为它会掩盖列表类型的名称。