文本到列表 python

Text to a list python

我正在尝试阅读数独并将其放入列表中, 我有这样的东西。

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']]

使用 .strip() 删除前导和尾随空格(包括导致您遇到麻烦的尾随换行符):

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

我想您需要使用 line.strip('\n\r').

删除“\n”

或者您也可以使用 line[:-1].split(','),它也会删除最后一个换行符。

如果你在行尾遇到问题,你可以像 Jez 一样做一个正确的剥离,但只在右边的部分..基本上..它做同样的事情,但只在字符串的右边。

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