我对python相当陌生,我一直在努力编写一个程序,该程序将文件中的一行作为输入来验证Lo Shu Magic Square。我需要做的是一次读取文件中的一行,例如每行 1 2 3 4 5 6 7 8 9 ,并将其转换为二维数组,如 [[1,2,3],[4 ,5,6],[7,8,9]] 前三个数字对应魔方第一行的值,后三个值对应第二行,后三个值对应最后一个排。
到目前为止我已经尝试过
def main():
data = []
for line in open('Magic Square Input.txt'):
items = line.split(" ")
temp = 0
setOfThree = []
for item in items:
if(len(item) > 1):
item = item[0:1]
if(item != " "):
setOfThree.append(item)
temp += 1
if(temp == 3):
test = []
test = setOfThree[:]
test = [int(x) for x in test]
data.append(test)
但这只会给我
[[4, 3, 8]]
[[4, 3, 8], [8, 3, 4]]
[[4, 3, 8], [8, 3, 4], [6, 1, 8]]
[[4, 3, 8], [8, 3, 4], [6, 1, 8], [6, 9, 8]]
[[4, 3, 8], [8, 3, 4], [6, 1, 8], [6, 9, 8], [6, 1, 8]]
[[4, 3, 8], [8, 3, 4], [6, 1, 8], [6, 9, 8], [6, 1, 8], [6, 1, 3]]
[[4, 3, 8], [8, 3, 4], [6, 1, 8], [6, 9, 8], [6, 1, 8], [6, 1, 3], [5, 5, 5]]
文本文件的内容是
4 3 8 9 5 1 2 7 6
8 3 4 1 5 9 6 7 2
6 1 8 7 5 3 2 9 4
6 9 8 7 5 3 2 1 4
6 1 8 7 5 3 2 1 4
6 1 3 2 9 4 8 7 5
5 5 5 5 5 5 5 5 5
所以我觉得我在正确的轨道上,但它只将每行的前三项附加到数据中,我不知道为什么