2014-04-30 24 views
0

我有这样的代码在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) 

这实际上从一个文本文件中读取整数,并把它们放在一个list.But实际结果为:

[[10,20,34]] 

不过,我想它显示,如:

10 20 34 

如何做到这一点?谢谢你的帮助!

+0

不要打印列表本身。您可以遍历列表并打印每个元素,或者您可以对字符串使用[join](https://docs.python.org/3/library/stdtypes.html#str.join)方法。格式化为 – thegrinner

+0

!它会帮助你:) – crownedzero

+0

@thegrinner如果我使用print(''.join(map(str,list)))它的结果是[10,20,34] theres still [] –

回答

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]! 
0

这听起来像你正试图打印清单的列表。最简单的方法是遍历它并打印每个列表。

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

另外,我觉得list是一个Python关键字,所以尽量避免命名你的东西,。

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 
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标识符的变量作为它掩盖了名列表类型。

相关问题