2013-04-16 67 views
0

我在Python中制作了一个Sudoku解算器,并且我的代码可以工作,但是我需要在列表中指定一个由9个列表组成的列表,以供分析。我目前正在努力如何做到这一点,以便当用户提示输入时,他们输入9个数字没有空格,然后再做8次;每次他们提交一行时,该行就被转换成一个列表。目前我必须手动指定列表(请参阅下面的示例)。python 3多行输入

b=[[2,5,9,7,1,6,4,8,3], 
[8,6,7,3,4,5,9,1,2], 
[4,1,3,9,2,8,6,7,5], 
[3,9,8,5,7,4,1,2,6], 
[5,4,6,2,8,1,7,3,9], 
[1,7,2,6,3,9,5,4,8], 
[9,8,4,1,6,3,2,5,7], 
[6,2,1,8,5,7,3,9,4], 
[7,3,5,4,9,2,8,6,1]] 

我想在做一个while循环有分流的功能,然后追加每个值到一个列表,但这仅仅是创建一个巨大的名单。

有人可以帮助我吗?

我可以对此进行扩展或在必要时提供代码,谢谢。

回答

2

输入不带空格隔开

b = [[int(x) for x in input()] for i in range(9)] 

那岂不是更好看它是否是由空格分隔,我知道你的问题指定不,但你可以这样做:

b = [[int(x) for x in input().split()] for i in range(9)] 

记:raw_input on Python 2.7

0

首先,找出它们的第一个输入是什么len(),然后创建一个该长度的列表。然后,每次通过循环时,创建一个列表并将其添加到您的容器列表中。一旦你有合适数量的列表来建立你的行,就不要再要求输入了。有几种方法可以通过whilefor循环完成此操作。

0

你可以输入使用list comprehension然后追加,为您的主目录:

main = [] 
... 
#get input 
... 
main.append([int(i) for i in input])