2014-04-30 39 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標識符的變量作爲它掩蓋了名列表類型。

相關問題