擅长:python、mysql、java
<p>你可以把它们分开做。这是更可读的,因为你可以遵循一步一步。你知道吗</p>
<pre><code>filtered_result = np.where(con6, 5, arr)
filtered_result = np.where(con5, 4, filtered_result)
filtered_result = np.where(con4, 3, filtered_result)
filtered_result = np.where(con3, 2, filtered_result)
filtered_result = np.where(con2, 1, filtered_result)
filtered_result = np.where(con1, 0, filtered_result)
return filtered_result
</code></pre>
<p>坚持你的要求,这就是pep8,那么这就是你要走的路</p>
<p><strong>编辑</p>
<p>for循环还可以显著减少重复性,并且仍然可读。你知道吗</p>
<pre><code>connections = iter((con6, con5, con4, con3, co2, con1, con0))
filters = range(len(connections)-2, 0 -1)
filtered_result = np.where(next(connections), next(filters), arr)
for n, con, in zip(filters, connections):
filtered_result = np.where(con, n, filtered_result)
return filtered_result
</code></pre>