擅长:python、mysql、java
<p>您可以遍历<code>item_list</code>并获取不包含<code>delete</code>列表中任何元素的元素:</p>
<pre><code>delete = ["man", "eater"]
item_list = ['sharper_task|$none_venue|man', 'sharper_task|man_venue|king', 'sharper_task|king_venue|world', 'sharper_task|world_venue|dont', 'sharper_task|を_venue|eater', 'sharper_task|eater_venue|todo', 'sharper_task|todo_venue|,']
print([x for x in item_list if not any(y in x for y in delete)])
# ['sharper_task|king_venue|world', 'sharper_task|world_venue|dont', 'sharper_task|todo_venue|,']
</code></pre>
<p>我不知道你为什么需要一个重复的输出,但是你可以这样做:</p>
<pre><code>print([[x, x] for x in item_list if not any(y in x for y in delete)])
</code></pre>
<p>这给了你一个期望的</p>
<p><code>any(...)</code>返回一个<code>True</code>如果我们在其中检查的任何一个条件变为真,否则返回一个<code>False</code>。这里,当<code>delete</code>中的任何元素位于<code>item_list</code>时,我们需要返回一个<code>True</code></p>
<p>非列表理解版本:</p>
<pre><code>lst = []
for x in item_list:
if not any(y in x for y in delete):
lst.append([x, x])
print(lst)
</code></pre>