擅长:python、mysql、java
<p>对于<code>for i in list(sfiles)</code>,<code>i</code>不是列表的索引,而是已经依次分配给每个元素,因此循环必须是:</p>
<pre><code>for i in list(sfiles):
if shape1 in i.split('\\')[-1]:
print(i)
…
</code></pre>
<blockquote>
<p>how can I do the same efficiently for the sh2?</p>
</blockquote>
<p>定义一个包含循环的函数,并传递<code>sh1</code>或<code>sh2</code>作为参数,例如:</p>
<pre><code>def matching(shape):
for i in list(sfiles):
if shape in i.split('\\')[-1]:
return i
</code></pre>
<blockquote>
<p>to assign to sh1 the full path from the sfiles that matches</p>
</blockquote>
<pre><code>sh1 = matching(sh1)
</code></pre>