擅长:python、mysql、java
<p>这里有一种使用<code>numpy</code>的方法:</p>
<pre><code>s = np.array([x.strip() for x in matrix.split()]).reshape(5,7)
print(s)
array[['8', '1', 'A', 'A', 'A', 'A', '8'],
['8', '5', 'A', 'A', 'A', '3', '8'],
['7', '2', 'A', 'A', '1', '4', '7'],
['6', '1', '3', 'A', '2', '5', '7'],
['2', '4', '5', 'A', '1', '1', '1']]
</code></pre>
<p>您可以使用<a href="https://docs.scipy.org/doc/numpy-1.15.1/reference/generated/numpy.flatnonzero.html" rel="nofollow noreferrer">^{<cd2>}</a>来定位<code>all</code>值为<code>0</code>的列,并将它们与最后一列交换:</p>
<pre><code>m = np.flatnonzero((s == 'A').all(axis=0))[0]
s.T[[m, s.shape[1]-1]] = s.T[[s.shape[1]-1, m]]
array([['8', '1', 'A', '8', 'A', 'A', 'A'],
['8', '5', 'A', '8', 'A', '3', 'A'],
['7', '2', 'A', '7', '1', '4', 'A'],
['6', '1', '3', '7', '2', '5', 'A'],
['2', '4', '5', '1', '1', '1', 'A']], dtype='<U21')
</code></pre>