2017-04-12 112 views
0

我試圖讀取數獨,並把它在列表上, 我有這樣的事情。文本列表蟒蛇

0,0,0,0,7,0,2,6,0 0,6,0,8,0,2,0,3,5 0,0,5,3,0,0,0,7,0 0,7,6,0,0,0,0,2,0 0,8,9,6,0,0,0,4,0 0,3,0,5,4,0,0,8,0 0,0,0,2,8,0,0,0,0 0,2,0,4,0,0,0,0,3 0,0,8,7,0,3,6,0,0

我需要將其轉換列表上這樣

board = [['0', '0', '0', '0', '7', '0', '2', '6', '0'], ['0', '6', '0', '8',  
'0', '2', '0', '3', '5'], ['0', '0', '5', '3', '0', '0', '0', '7', '0'], 
['0','7', '6', '0', '0', '0', '0', '2', '0'], ['0', '8', '9', '6', '0', 
'0', '0','4', '0'], ['0', '3', '0', '5', '4', '0', '0', '8', '0'], 
['0', '0', '0', '2','8', '0', '0', '0', '0'], ['0', '2', '0', '4', '0', 
'0', '0', '0', '3'], ['0','0', '8', '7', '0', '3', '6', '0', '0']] 

我使用這個代碼,但有一個問題

tablero = open('sd1.txt', 'r') board = [line.split(',') for line in tablero.readlines()]

結果是:

board = [['0', '0', '0', '0', '7', '0', '2', '6', '0\n'], ['0', '6', '0', 
'8', '0', '2', '0', '3', '5\n'], ['0', '0', '5', '3', '0', '0', '0', '7', 
'0\n'], ['0', '7', '6', '0', '0', '0', '0', '2', '0\n'], ['0', '8', '9', 
'6', '0', '0', '0', '4', '0\n'], ['0', '3', '0', '5', '4', '0', '0', '8', 
'0\n'], ['0', '0', '0', '2', '8', '0', '0', '0', '0\n'], ['0', '2', '0', 
'4', '0', '0', '0', '0', '3\n'], ['0', '0', '8', '7', '0', '3', '6', '0', 
'0\n']] 

回答

2

使用.strip(),除去開頭和結尾的空格(包括結尾的換行,是造成你的麻煩):

board = [line.strip().split(',') for line in tablero.readlines()] 
0

我想你需要使用line.strip('\n\r')刪除「\ n」。

或者你也可以使用line[:-1].split(','),這也消除了最後一個換行符。如果你有在一行的末尾問題

0

,你可以做一個右側條狀作爲同傑斯但只有右側part..basically..it不相同,但只有字符串的權利。

board = [line.rstrip().split(',') for line in tablero.readlines()]