擅长:python、mysql、java
<p>使用集合更有效,但您的主要问题是没有删除有效的\u id \u arr中的后半部分元素</p>
<pre><code>invalid_id_arr=["id123-3431","id124-4341","id125-4341","id126-1w","id789-123","id666"]
valid_id_arr=["id123-12345","id124-1122","id125-13232","id126-12332","id1new","idagain"]
valid_id_set = set(ele.split('-')[0] for ele in valid_id_arr)
diff = [ele for ele in invalid_id_arr if ele.split('-')[0] not in valid_id_set]
print diff
</code></pre>
<p>输出:</p>
<pre><code>['id789-123', 'id666']
</code></pre>
<p><a href="http://ideone.com/Q9JBw" rel="nofollow">http://ideone.com/Q9JBw</a></p>