2015-09-24 173 views
1

我有一个字符矩阵,看起来是这样的:删除字符

["AAAAAAAA", 
"AAAXAAAA", 
"AAAAAAAA"] 

我对X的位置,数字X/Y坐标,我希望得到一个包含字符串矩阵中除x以外的所有字母,最好的方法是什么?

+3

什么做的坐标是这样的:'[1, 3]'?另外,在你的示例代码中,你期望什么输出?看起来你可以做'A'*(number_of_elements_in(矩阵) - number_of_coordinates_to_remove)'。 – mgilson

+5

你有什么尝试?向我们展示你的尝试,即使它不是最好的方法。 –

+0

你想要的输出是什么?一个字符串,或三个字符串的列表? – askewchan

回答

1

不是最有效的,但出发点:

>>> matrix = [ 
...  "AAAAAAAA", 
...  "AAAXAAAA", 
...  "AAAAAAAA"] 
>>> x, y = 4, 2 

>>> linear = list(itertools.chain.from_iterable(matrix)) 
>>> del linear[x - 1 + (y - 1) * 8] 
>>> ''.join(linear) 
'AAAAAAAAAAAAAAAAAAAAAAA' 
0

好吧,这里是用Python的真棒列表理解的解决方案:

coordinates = (1,3) # (line, column) 
matrix = ["AAAAAAAA", 
    "AAAXAAAA", 
    "AAAAAAAA"] 

matrix = [list(line) for line in matrix] # convert the strings to create a "real" matrix" 
del matrix[coordinates[0]][coordinates[1]] # delete the specified element 

"".join([item for line in matrix for item in line]) # flatten out the matrix and creating a string