文本到列表 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()]
我正在尝试阅读数独并将其放入列表中, 我有这样的东西。
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')
.
或者您也可以使用 line[:-1].split(',')
,它也会删除最后一个换行符。
如果你在行尾遇到问题,你可以像 Jez 一样做一个正确的剥离,但只在右边的部分..基本上..它做同样的事情,但只在字符串的右边。
board = [line.rstrip().split(',') for line in tablero.readlines()]