首页 > 解决方案 > 从命令行读取输入将其存储到二维数组中,而不是字符串输入

问题描述

with open(sys.argv[1], 'r') as f:                  
    a= f.readlines()    #reads the file's lines
    a = [x.strip() for x in a] #ignores the newline char
print (a)

使用这个函数,当我打印数组时,我有一个输出:

['+X..XX....-', '.X..X..X-..', '.X.........', '...XX......', 'XXX.+X.....', '..X.....XXX', '...XXX..X-.', '.-.....X...']

如何转换上述函数以使其返回

[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

像这样,一个元素数组而不是字符串数组

标签: pythonpython-3.x

解决方案


In[3]: with open('test.txt', 'r') as f:
  ...:     result = [list(line.rstrip()) for line in f]
  ...: 
In[4]: result
Out[4]: 
[['+', 'X', '.', '.', 'X', 'X', '.', '.', '.', '.', '-'],
 ['.', 'X', '.', '.', 'X', '.', '.', 'X', '-', '.', '.'],
 ['.', 'X', '.', '.', '.', '.', '.', '.', '.', '.', '.'],
 ['.', '.', '.', 'X', 'X', '.', '.', '.', '.', '.', '.'],
 ['X', 'X', 'X', '.', '+', 'X', '.', '.', '.', '.', '.'],
 ['.', '.', 'X', '.', '.', '.', '.', '.', 'X', 'X', 'X'],
 ['.', '.', '.', 'X', 'X', 'X', '.', '.', 'X', '-', '.'],
 ['.', '-', '.', '.', '.', '.', '.', 'X', '.', '.', '.']]

推荐阅读